webpackJsonp([0], {
    "//Fk": function(e, t, i) { e.exports = { default: i("U5ju"), __esModule: !0 } },
    "1Yoh": function(e, t) {
        /*!
         * Determine if an object is a Buffer
         *
         * @author   Feross Aboukhadijeh <https://feross.org>
         * @license  MIT
         */
        e.exports = function(e) { return null != e && null != e.constructor && "function" == typeof e.constructor.isBuffer && e.constructor.isBuffer(e) }
    },
    "21It": function(e, t, i) {
        "use strict";
        var n = i("FtD3");
        e.exports = function(e, t, i) {
            var a = i.config.validateStatus;
            i.status && a && !a(i.status) ? t(n("Request failed with status code " + i.status, i.config, null, i.request, i)) : e(i)
        }
    },
    "2KxR": function(e, t) { e.exports = function(e, t, i, n) { if (!(e instanceof t) || void 0 !== n && n in e) throw TypeError(i + ": incorrect invocation!"); return e } },
    "2Rkd": function(e, t, i) { e.exports = i.p + "IntelligentPatrol/img/kitchen.4980f56.jpg" },
    "3fs2": function(e, t, i) {
        var n = i("RY/4"),
            a = i("dSzd")("iterator"),
            r = i("/bQp");
        e.exports = i("FeBl").getIteratorMethod = function(e) { if (void 0 != e) return e[a] || e["@@iterator"] || r[n(e)] }
    },
    "5CjL": function(e, t) {},
    "5VQ+": function(e, t, i) {
        "use strict";
        var n = i("cGG2");
        e.exports = function(e, t) { n.forEach(e, function(i, n) { n !== t && n.toUpperCase() === t.toUpperCase() && (e[t] = i, delete e[n]) }) }
    },
    "7GwW": function(e, t, i) {
        "use strict";
        var n = i("cGG2"),
            a = i("21It"),
            r = i("DQCr"),
            s = i("oJlt"),
            o = i("GHBc"),
            l = i("FtD3");
        e.exports = function(e) {
            return new Promise(function(t, d) {
                var c = e.data,
                    u = e.headers;
                n.isFormData(c) && delete u["Content-Type"];
                var p = new XMLHttpRequest;
                if (e.auth) {
                    var h = e.auth.username || "",
                        f = e.auth.password || "";
                    u.Authorization = "Basic " + btoa(h + ":" + f)
                }
                if (p.open(e.method.toUpperCase(), r(e.url, e.params, e.paramsSerializer), !0), p.timeout = e.timeout, p.onreadystatechange = function() {
                        if (p && 4 === p.readyState && (0 !== p.status || p.responseURL && 0 === p.responseURL.indexOf("file:"))) {
                            var i = "getAllResponseHeaders" in p ? s(p.getAllResponseHeaders()) : null,
                                n = { data: e.responseType && "text" !== e.responseType ? p.response : p.responseText, status: p.status, statusText: p.statusText, headers: i, config: e, request: p };
                            a(t, d, n), p = null
                        }
                    }, p.onerror = function() { d(l("Network Error", e, null, p)), p = null }, p.ontimeout = function() { d(l("timeout of " + e.timeout + "ms exceeded", e, "ECONNABORTED", p)), p = null }, n.isStandardBrowserEnv()) {
                    var m = i("p1b6"),
                        g = (e.withCredentials || o(e.url)) && e.xsrfCookieName ? m.read(e.xsrfCookieName) : void 0;
                    g && (u[e.xsrfHeaderName] = g)
                }
                if ("setRequestHeader" in p && n.forEach(u, function(e, t) { void 0 === c && "content-type" === t.toLowerCase() ? delete u[t] : p.setRequestHeader(t, e) }), e.withCredentials && (p.withCredentials = !0), e.responseType) try { p.responseType = e.responseType } catch (t) { if ("json" !== e.responseType) throw t }
                "function" == typeof e.onDownloadProgress && p.addEventListener("progress", e.onDownloadProgress), "function" == typeof e.onUploadProgress && p.upload && p.upload.addEventListener("progress", e.onUploadProgress), e.cancelToken && e.cancelToken.promise.then(function(e) { p && (p.abort(), d(e), p = null) }), void 0 === c && (c = null), p.send(c)
            })
        }
    },
    "7t+N": function(e, t, i) {
        var n;
        /*!
         * jQuery JavaScript Library v3.4.1
         * https://jquery.com/
         *
         * Includes Sizzle.js
         * https://sizzlejs.com/
         *
         * Copyright JS Foundation and other contributors
         * Released under the MIT license
         * https://jquery.org/license
         *
         * Date: 2019-05-01T21:04Z
         */
        /*!
         * jQuery JavaScript Library v3.4.1
         * https://jquery.com/
         *
         * Includes Sizzle.js
         * https://sizzlejs.com/
         *
         * Copyright JS Foundation and other contributors
         * Released under the MIT license
         * https://jquery.org/license
         *
         * Date: 2019-05-01T21:04Z
         */
        ! function(t, i) { "use strict"; "object" == typeof e && "object" == typeof e.exports ? e.exports = t.document ? i(t, !0) : function(e) { if (!e.document) throw new Error("jQuery requires a window with a document"); return i(e) } : i(t) }("undefined" != typeof window ? window : this, function(i, a) {
            "use strict";
            var r = [],
                s = i.document,
                o = Object.getPrototypeOf,
                l = r.slice,
                d = r.concat,
                c = r.push,
                u = r.indexOf,
                p = {},
                h = p.toString,
                f = p.hasOwnProperty,
                m = f.toString,
                g = m.call(Object),
                v = {},
                y = function(e) { return "function" == typeof e && "number" != typeof e.nodeType },
                w = function(e) { return null != e && e === e.window },
                b = { type: !0, src: !0, nonce: !0, noModule: !0 };

            function x(e, t, i) {
                var n, a, r = (i = i || s).createElement("script");
                if (r.text = e, t)
                    for (n in b)(a = t[n] || t.getAttribute && t.getAttribute(n)) && r.setAttribute(n, a);
                i.head.appendChild(r).parentNode.removeChild(r)
            }

            function T(e) { return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? p[h.call(e)] || "object" : typeof e }
            var S = function(e, t) { return new S.fn.init(e, t) },
                C = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;

            function E(e) {
                var t = !!e && "length" in e && e.length,
                    i = T(e);
                return !y(e) && !w(e) && ("array" === i || 0 === t || "number" == typeof t && t > 0 && t - 1 in e)
            }
            S.fn = S.prototype = {
                jquery: "3.4.1",
                constructor: S,
                length: 0,
                toArray: function() { return l.call(this) },
                get: function(e) { return null == e ? l.call(this) : e < 0 ? this[e + this.length] : this[e] },
                pushStack: function(e) { var t = S.merge(this.constructor(), e); return t.prevObject = this, t },
                each: function(e) { return S.each(this, e) },
                map: function(e) { return this.pushStack(S.map(this, function(t, i) { return e.call(t, i, t) })) },
                slice: function() { return this.pushStack(l.apply(this, arguments)) },
                first: function() { return this.eq(0) },
                last: function() { return this.eq(-1) },
                eq: function(e) {
                    var t = this.length,
                        i = +e + (e < 0 ? t : 0);
                    return this.pushStack(i >= 0 && i < t ? [this[i]] : [])
                },
                end: function() { return this.prevObject || this.constructor() },
                push: c,
                sort: r.sort,
                splice: r.splice
            }, S.extend = S.fn.extend = function() {
                var e, t, i, n, a, r, s = arguments[0] || {},
                    o = 1,
                    l = arguments.length,
                    d = !1;
                for ("boolean" == typeof s && (d = s, s = arguments[o] || {}, o++), "object" == typeof s || y(s) || (s = {}), o === l && (s = this, o--); o < l; o++)
                    if (null != (e = arguments[o]))
                        for (t in e) n = e[t], "__proto__" !== t && s !== n && (d && n && (S.isPlainObject(n) || (a = Array.isArray(n))) ? (i = s[t], r = a && !Array.isArray(i) ? [] : a || S.isPlainObject(i) ? i : {}, a = !1, s[t] = S.extend(d, r, n)) : void 0 !== n && (s[t] = n));
                return s
            }, S.extend({
                expando: "jQuery" + ("3.4.1" + Math.random()).replace(/\D/g, ""),
                isReady: !0,
                error: function(e) { throw new Error(e) },
                noop: function() {},
                isPlainObject: function(e) { var t, i; return !(!e || "[object Object]" !== h.call(e)) && (!(t = o(e)) || "function" == typeof(i = f.call(t, "constructor") && t.constructor) && m.call(i) === g) },
                isEmptyObject: function(e) { var t; for (t in e) return !1; return !0 },
                globalEval: function(e, t) { x(e, { nonce: t && t.nonce }) },
                each: function(e, t) {
                    var i, n = 0;
                    if (E(e))
                        for (i = e.length; n < i && !1 !== t.call(e[n], n, e[n]); n++);
                    else
                        for (n in e)
                            if (!1 === t.call(e[n], n, e[n])) break; return e
                },
                trim: function(e) { return null == e ? "" : (e + "").replace(C, "") },
                makeArray: function(e, t) { var i = t || []; return null != e && (E(Object(e)) ? S.merge(i, "string" == typeof e ? [e] : e) : c.call(i, e)), i },
                inArray: function(e, t, i) { return null == t ? -1 : u.call(t, e, i) },
                merge: function(e, t) { for (var i = +t.length, n = 0, a = e.length; n < i; n++) e[a++] = t[n]; return e.length = a, e },
                grep: function(e, t, i) { for (var n = [], a = 0, r = e.length, s = !i; a < r; a++) !t(e[a], a) !== s && n.push(e[a]); return n },
                map: function(e, t, i) {
                    var n, a, r = 0,
                        s = [];
                    if (E(e))
                        for (n = e.length; r < n; r++) null != (a = t(e[r], r, i)) && s.push(a);
                    else
                        for (r in e) null != (a = t(e[r], r, i)) && s.push(a);
                    return d.apply([], s)
                },
                guid: 1,
                support: v
            }), "function" == typeof Symbol && (S.fn[Symbol.iterator] = r[Symbol.iterator]), S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(e, t) { p["[object " + t + "]"] = t.toLowerCase() });
            var A =
                /*!
                 * Sizzle CSS Selector Engine v2.3.4
                 * https://sizzlejs.com/
                 *
                 * Copyright JS Foundation and other contributors
                 * Released under the MIT license
                 * https://js.foundation/
                 *
                 * Date: 2019-04-08
                 */
                function(e) {
                    var t, i, n, a, r, s, o, l, d, c, u, p, h, f, m, g, v, y, w, b = "sizzle" + 1 * new Date,
                        x = e.document,
                        T = 0,
                        S = 0,
                        C = le(),
                        E = le(),
                        A = le(),
                        M = le(),
                        P = function(e, t) { return e === t && (u = !0), 0 },
                        k = {}.hasOwnProperty,
                        z = [],
                        I = z.pop,
                        D = z.push,
                        L = z.push,
                        B = z.slice,
                        N = function(e, t) {
                            for (var i = 0, n = e.length; i < n; i++)
                                if (e[i] === t) return i;
                            return -1
                        },
                        O = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
                        H = "[\\x20\\t\\r\\n\\f]",
                        R = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
                        $ = "\\[" + H + "*(" + R + ")(?:" + H + "*([*^$|!~]?=)" + H + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + R + "))|)" + H + "*\\]",
                        G = ":(" + R + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + $ + ")*)|.*)\\)|)",
                        j = new RegExp(H + "+", "g"),
                        V = new RegExp("^" + H + "+|((?:^|[^\\\\])(?:\\\\.)*)" + H + "+$", "g"),
                        X = new RegExp("^" + H + "*," + H + "*"),
                        F = new RegExp("^" + H + "*([>+~]|" + H + ")" + H + "*"),
                        q = new RegExp(H + "|>"),
                        Y = new RegExp(G),
                        W = new RegExp("^" + R + "$"),
                        U = { ID: new RegExp("^#(" + R + ")"), CLASS: new RegExp("^\\.(" + R + ")"), TAG: new RegExp("^(" + R + "|[*])"), ATTR: new RegExp("^" + $), PSEUDO: new RegExp("^" + G), CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + H + "*(even|odd|(([+-]|)(\\d*)n|)" + H + "*(?:([+-]|)" + H + "*(\\d+)|))" + H + "*\\)|)", "i"), bool: new RegExp("^(?:" + O + ")$", "i"), needsContext: new RegExp("^" + H + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + H + "*((?:-\\d)?\\d*)" + H + "*\\)|)(?=[^-]|$)", "i") },
                        K = /HTML$/i,
                        J = /^(?:input|select|textarea|button)$/i,
                        Q = /^h\d$/i,
                        _ = /^[^{]+\{\s*\[native \w/,
                        Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
                        ee = /[+~]/,
                        te = new RegExp("\\\\([\\da-f]{1,6}" + H + "?|(" + H + ")|.)", "ig"),
                        ie = function(e, t, i) { var n = "0x" + t - 65536; return n != n || i ? t : n < 0 ? String.fromCharCode(n + 65536) : String.fromCharCode(n >> 10 | 55296, 1023 & n | 56320) },
                        ne = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
                        ae = function(e, t) { return t ? "\0" === e ? "�" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e },
                        re = function() { p() },
                        se = be(function(e) { return !0 === e.disabled && "fieldset" === e.nodeName.toLowerCase() }, { dir: "parentNode", next: "legend" });
                    try { L.apply(z = B.call(x.childNodes), x.childNodes), z[x.childNodes.length].nodeType } catch (e) {
                        L = {
                            apply: z.length ? function(e, t) { D.apply(e, B.call(t)) } : function(e, t) {
                                for (var i = e.length, n = 0; e[i++] = t[n++];);
                                e.length = i - 1
                            }
                        }
                    }

                    function oe(e, t, n, a) {
                        var r, o, d, c, u, f, v, y = t && t.ownerDocument,
                            T = t ? t.nodeType : 9;
                        if (n = n || [], "string" != typeof e || !e || 1 !== T && 9 !== T && 11 !== T) return n;
                        if (!a && ((t ? t.ownerDocument || t : x) !== h && p(t), t = t || h, m)) {
                            if (11 !== T && (u = Z.exec(e)))
                                if (r = u[1]) { if (9 === T) { if (!(d = t.getElementById(r))) return n; if (d.id === r) return n.push(d), n } else if (y && (d = y.getElementById(r)) && w(t, d) && d.id === r) return n.push(d), n } else { if (u[2]) return L.apply(n, t.getElementsByTagName(e)), n; if ((r = u[3]) && i.getElementsByClassName && t.getElementsByClassName) return L.apply(n, t.getElementsByClassName(r)), n }
                            if (i.qsa && !M[e + " "] && (!g || !g.test(e)) && (1 !== T || "object" !== t.nodeName.toLowerCase())) {
                                if (v = e, y = t, 1 === T && q.test(e)) {
                                    for ((c = t.getAttribute("id")) ? c = c.replace(ne, ae) : t.setAttribute("id", c = b), o = (f = s(e)).length; o--;) f[o] = "#" + c + " " + we(f[o]);
                                    v = f.join(","), y = ee.test(e) && ve(t.parentNode) || t
                                }
                                try { return L.apply(n, y.querySelectorAll(v)), n } catch (t) { M(e, !0) } finally { c === b && t.removeAttribute("id") }
                            }
                        }
                        return l(e.replace(V, "$1"), t, n, a)
                    }

                    function le() { var e = []; return function t(i, a) { return e.push(i + " ") > n.cacheLength && delete t[e.shift()], t[i + " "] = a } }

                    function de(e) { return e[b] = !0, e }

                    function ce(e) { var t = h.createElement("fieldset"); try { return !!e(t) } catch (e) { return !1 } finally { t.parentNode && t.parentNode.removeChild(t), t = null } }

                    function ue(e, t) { for (var i = e.split("|"), a = i.length; a--;) n.attrHandle[i[a]] = t }

                    function pe(e, t) {
                        var i = t && e,
                            n = i && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex;
                        if (n) return n;
                        if (i)
                            for (; i = i.nextSibling;)
                                if (i === t) return -1;
                        return e ? 1 : -1
                    }

                    function he(e) { return function(t) { return "input" === t.nodeName.toLowerCase() && t.type === e } }

                    function fe(e) { return function(t) { var i = t.nodeName.toLowerCase(); return ("input" === i || "button" === i) && t.type === e } }

                    function me(e) { return function(t) { return "form" in t ? t.parentNode && !1 === t.disabled ? "label" in t ? "label" in t.parentNode ? t.parentNode.disabled === e : t.disabled === e : t.isDisabled === e || t.isDisabled !== !e && se(t) === e : t.disabled === e : "label" in t && t.disabled === e } }

                    function ge(e) { return de(function(t) { return t = +t, de(function(i, n) { for (var a, r = e([], i.length, t), s = r.length; s--;) i[a = r[s]] && (i[a] = !(n[a] = i[a])) }) }) }

                    function ve(e) { return e && void 0 !== e.getElementsByTagName && e }
                    for (t in i = oe.support = {}, r = oe.isXML = function(e) {
                            var t = e.namespaceURI,
                                i = (e.ownerDocument || e).documentElement;
                            return !K.test(t || i && i.nodeName || "HTML")
                        }, p = oe.setDocument = function(e) {
                            var t, a, s = e ? e.ownerDocument || e : x;
                            return s !== h && 9 === s.nodeType && s.documentElement ? (f = (h = s).documentElement, m = !r(h), x !== h && (a = h.defaultView) && a.top !== a && (a.addEventListener ? a.addEventListener("unload", re, !1) : a.attachEvent && a.attachEvent("onunload", re)), i.attributes = ce(function(e) { return e.className = "i", !e.getAttribute("className") }), i.getElementsByTagName = ce(function(e) { return e.appendChild(h.createComment("")), !e.getElementsByTagName("*").length }), i.getElementsByClassName = _.test(h.getElementsByClassName), i.getById = ce(function(e) { return f.appendChild(e).id = b, !h.getElementsByName || !h.getElementsByName(b).length }), i.getById ? (n.filter.ID = function(e) { var t = e.replace(te, ie); return function(e) { return e.getAttribute("id") === t } }, n.find.ID = function(e, t) { if (void 0 !== t.getElementById && m) { var i = t.getElementById(e); return i ? [i] : [] } }) : (n.filter.ID = function(e) { var t = e.replace(te, ie); return function(e) { var i = void 0 !== e.getAttributeNode && e.getAttributeNode("id"); return i && i.value === t } }, n.find.ID = function(e, t) {
                                if (void 0 !== t.getElementById && m) {
                                    var i, n, a, r = t.getElementById(e);
                                    if (r) {
                                        if ((i = r.getAttributeNode("id")) && i.value === e) return [r];
                                        for (a = t.getElementsByName(e), n = 0; r = a[n++];)
                                            if ((i = r.getAttributeNode("id")) && i.value === e) return [r]
                                    }
                                    return []
                                }
                            }), n.find.TAG = i.getElementsByTagName ? function(e, t) { return void 0 !== t.getElementsByTagName ? t.getElementsByTagName(e) : i.qsa ? t.querySelectorAll(e) : void 0 } : function(e, t) {
                                var i, n = [],
                                    a = 0,
                                    r = t.getElementsByTagName(e);
                                if ("*" === e) { for (; i = r[a++];) 1 === i.nodeType && n.push(i); return n }
                                return r
                            }, n.find.CLASS = i.getElementsByClassName && function(e, t) { if (void 0 !== t.getElementsByClassName && m) return t.getElementsByClassName(e) }, v = [], g = [], (i.qsa = _.test(h.querySelectorAll)) && (ce(function(e) { f.appendChild(e).innerHTML = "<a id='" + b + "'></a><select id='" + b + "-\r\\' msallowcapture=''><option selected=''></option></select>", e.querySelectorAll("[msallowcapture^='']").length && g.push("[*^$]=" + H + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || g.push("\\[" + H + "*(?:value|" + O + ")"), e.querySelectorAll("[id~=" + b + "-]").length || g.push("~="), e.querySelectorAll(":checked").length || g.push(":checked"), e.querySelectorAll("a#" + b + "+*").length || g.push(".#.+[+~]") }), ce(function(e) {
                                e.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";
                                var t = h.createElement("input");
                                t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && g.push("name" + H + "*[*^$|!~]?="), 2 !== e.querySelectorAll(":enabled").length && g.push(":enabled", ":disabled"), f.appendChild(e).disabled = !0, 2 !== e.querySelectorAll(":disabled").length && g.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), g.push(",.*:")
                            })), (i.matchesSelector = _.test(y = f.matches || f.webkitMatchesSelector || f.mozMatchesSelector || f.oMatchesSelector || f.msMatchesSelector)) && ce(function(e) { i.disconnectedMatch = y.call(e, "*"), y.call(e, "[s!='']:x"), v.push("!=", G) }), g = g.length && new RegExp(g.join("|")), v = v.length && new RegExp(v.join("|")), t = _.test(f.compareDocumentPosition), w = t || _.test(f.contains) ? function(e, t) {
                                var i = 9 === e.nodeType ? e.documentElement : e,
                                    n = t && t.parentNode;
                                return e === n || !(!n || 1 !== n.nodeType || !(i.contains ? i.contains(n) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(n)))
                            } : function(e, t) {
                                if (t)
                                    for (; t = t.parentNode;)
                                        if (t === e) return !0;
                                return !1
                            }, P = t ? function(e, t) { if (e === t) return u = !0, 0; var n = !e.compareDocumentPosition - !t.compareDocumentPosition; return n || (1 & (n = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !i.sortDetached && t.compareDocumentPosition(e) === n ? e === h || e.ownerDocument === x && w(x, e) ? -1 : t === h || t.ownerDocument === x && w(x, t) ? 1 : c ? N(c, e) - N(c, t) : 0 : 4 & n ? -1 : 1) } : function(e, t) {
                                if (e === t) return u = !0, 0;
                                var i, n = 0,
                                    a = e.parentNode,
                                    r = t.parentNode,
                                    s = [e],
                                    o = [t];
                                if (!a || !r) return e === h ? -1 : t === h ? 1 : a ? -1 : r ? 1 : c ? N(c, e) - N(c, t) : 0;
                                if (a === r) return pe(e, t);
                                for (i = e; i = i.parentNode;) s.unshift(i);
                                for (i = t; i = i.parentNode;) o.unshift(i);
                                for (; s[n] === o[n];) n++;
                                return n ? pe(s[n], o[n]) : s[n] === x ? -1 : o[n] === x ? 1 : 0
                            }, h) : h
                        }, oe.matches = function(e, t) { return oe(e, null, null, t) }, oe.matchesSelector = function(e, t) {
                            if ((e.ownerDocument || e) !== h && p(e), i.matchesSelector && m && !M[t + " "] && (!v || !v.test(t)) && (!g || !g.test(t))) try { var n = y.call(e, t); if (n || i.disconnectedMatch || e.document && 11 !== e.document.nodeType) return n } catch (e) { M(t, !0) }
                            return oe(t, h, null, [e]).length > 0
                        }, oe.contains = function(e, t) { return (e.ownerDocument || e) !== h && p(e), w(e, t) }, oe.attr = function(e, t) {
                            (e.ownerDocument || e) !== h && p(e);
                            var a = n.attrHandle[t.toLowerCase()],
                                r = a && k.call(n.attrHandle, t.toLowerCase()) ? a(e, t, !m) : void 0;
                            return void 0 !== r ? r : i.attributes || !m ? e.getAttribute(t) : (r = e.getAttributeNode(t)) && r.specified ? r.value : null
                        }, oe.escape = function(e) { return (e + "").replace(ne, ae) }, oe.error = function(e) { throw new Error("Syntax error, unrecognized expression: " + e) }, oe.uniqueSort = function(e) {
                            var t, n = [],
                                a = 0,
                                r = 0;
                            if (u = !i.detectDuplicates, c = !i.sortStable && e.slice(0), e.sort(P), u) { for (; t = e[r++];) t === e[r] && (a = n.push(r)); for (; a--;) e.splice(n[a], 1) }
                            return c = null, e
                        }, a = oe.getText = function(e) {
                            var t, i = "",
                                n = 0,
                                r = e.nodeType;
                            if (r) { if (1 === r || 9 === r || 11 === r) { if ("string" == typeof e.textContent) return e.textContent; for (e = e.firstChild; e; e = e.nextSibling) i += a(e) } else if (3 === r || 4 === r) return e.nodeValue } else
                                for (; t = e[n++];) i += a(t);
                            return i
                        }, (n = oe.selectors = {
                            cacheLength: 50,
                            createPseudo: de,
                            match: U,
                            attrHandle: {},
                            find: {},
                            relative: { ">": { dir: "parentNode", first: !0 }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: !0 }, "~": { dir: "previousSibling" } },
                            preFilter: { ATTR: function(e) { return e[1] = e[1].replace(te, ie), e[3] = (e[3] || e[4] || e[5] || "").replace(te, ie), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4) }, CHILD: function(e) { return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || oe.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && oe.error(e[0]), e }, PSEUDO: function(e) { var t, i = !e[6] && e[2]; return U.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : i && Y.test(i) && (t = s(i, !0)) && (t = i.indexOf(")", i.length - t) - i.length) && (e[0] = e[0].slice(0, t), e[2] = i.slice(0, t)), e.slice(0, 3)) } },
                            filter: {
                                TAG: function(e) { var t = e.replace(te, ie).toLowerCase(); return "*" === e ? function() { return !0 } : function(e) { return e.nodeName && e.nodeName.toLowerCase() === t } },
                                CLASS: function(e) { var t = C[e + " "]; return t || (t = new RegExp("(^|" + H + ")" + e + "(" + H + "|$)")) && C(e, function(e) { return t.test("string" == typeof e.className && e.className || void 0 !== e.getAttribute && e.getAttribute("class") || "") }) },
                                ATTR: function(e, t, i) { return function(n) { var a = oe.attr(n, e); return null == a ? "!=" === t : !t || (a += "", "=" === t ? a === i : "!=" === t ? a !== i : "^=" === t ? i && 0 === a.indexOf(i) : "*=" === t ? i && a.indexOf(i) > -1 : "$=" === t ? i && a.slice(-i.length) === i : "~=" === t ? (" " + a.replace(j, " ") + " ").indexOf(i) > -1 : "|=" === t && (a === i || a.slice(0, i.length + 1) === i + "-")) } },
                                CHILD: function(e, t, i, n, a) {
                                    var r = "nth" !== e.slice(0, 3),
                                        s = "last" !== e.slice(-4),
                                        o = "of-type" === t;
                                    return 1 === n && 0 === a ? function(e) { return !!e.parentNode } : function(t, i, l) {
                                        var d, c, u, p, h, f, m = r !== s ? "nextSibling" : "previousSibling",
                                            g = t.parentNode,
                                            v = o && t.nodeName.toLowerCase(),
                                            y = !l && !o,
                                            w = !1;
                                        if (g) {
                                            if (r) {
                                                for (; m;) {
                                                    for (p = t; p = p[m];)
                                                        if (o ? p.nodeName.toLowerCase() === v : 1 === p.nodeType) return !1;
                                                    f = m = "only" === e && !f && "nextSibling"
                                                }
                                                return !0
                                            }
                                            if (f = [s ? g.firstChild : g.lastChild], s && y) {
                                                for (w = (h = (d = (c = (u = (p = g)[b] || (p[b] = {}))[p.uniqueID] || (u[p.uniqueID] = {}))[e] || [])[0] === T && d[1]) && d[2], p = h && g.childNodes[h]; p = ++h && p && p[m] || (w = h = 0) || f.pop();)
                                                    if (1 === p.nodeType && ++w && p === t) { c[e] = [T, h, w]; break }
                                            } else if (y && (w = h = (d = (c = (u = (p = t)[b] || (p[b] = {}))[p.uniqueID] || (u[p.uniqueID] = {}))[e] || [])[0] === T && d[1]), !1 === w)
                                                for (;
                                                    (p = ++h && p && p[m] || (w = h = 0) || f.pop()) && ((o ? p.nodeName.toLowerCase() !== v : 1 !== p.nodeType) || !++w || (y && ((c = (u = p[b] || (p[b] = {}))[p.uniqueID] || (u[p.uniqueID] = {}))[e] = [T, w]), p !== t)););
                                            return (w -= a) === n || w % n == 0 && w / n >= 0
                                        }
                                    }
                                },
                                PSEUDO: function(e, t) { var i, a = n.pseudos[e] || n.setFilters[e.toLowerCase()] || oe.error("unsupported pseudo: " + e); return a[b] ? a(t) : a.length > 1 ? (i = [e, e, "", t], n.setFilters.hasOwnProperty(e.toLowerCase()) ? de(function(e, i) { for (var n, r = a(e, t), s = r.length; s--;) e[n = N(e, r[s])] = !(i[n] = r[s]) }) : function(e) { return a(e, 0, i) }) : a }
                            },
                            pseudos: {
                                not: de(function(e) {
                                    var t = [],
                                        i = [],
                                        n = o(e.replace(V, "$1"));
                                    return n[b] ? de(function(e, t, i, a) { for (var r, s = n(e, null, a, []), o = e.length; o--;)(r = s[o]) && (e[o] = !(t[o] = r)) }) : function(e, a, r) { return t[0] = e, n(t, null, r, i), t[0] = null, !i.pop() }
                                }),
                                has: de(function(e) { return function(t) { return oe(e, t).length > 0 } }),
                                contains: de(function(e) {
                                    return e = e.replace(te, ie),
                                        function(t) { return (t.textContent || a(t)).indexOf(e) > -1 }
                                }),
                                lang: de(function(e) {
                                    return W.test(e || "") || oe.error("unsupported lang: " + e), e = e.replace(te, ie).toLowerCase(),
                                        function(t) {
                                            var i;
                                            do { if (i = m ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang")) return (i = i.toLowerCase()) === e || 0 === i.indexOf(e + "-") } while ((t = t.parentNode) && 1 === t.nodeType);
                                            return !1
                                        }
                                }),
                                target: function(t) { var i = e.location && e.location.hash; return i && i.slice(1) === t.id },
                                root: function(e) { return e === f },
                                focus: function(e) { return e === h.activeElement && (!h.hasFocus || h.hasFocus()) && !!(e.type || e.href || ~e.tabIndex) },
                                enabled: me(!1),
                                disabled: me(!0),
                                checked: function(e) { var t = e.nodeName.toLowerCase(); return "input" === t && !!e.checked || "option" === t && !!e.selected },
                                selected: function(e) { return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected },
                                empty: function(e) {
                                    for (e = e.firstChild; e; e = e.nextSibling)
                                        if (e.nodeType < 6) return !1;
                                    return !0
                                },
                                parent: function(e) { return !n.pseudos.empty(e) },
                                header: function(e) { return Q.test(e.nodeName) },
                                input: function(e) { return J.test(e.nodeName) },
                                button: function(e) { var t = e.nodeName.toLowerCase(); return "input" === t && "button" === e.type || "button" === t },
                                text: function(e) { var t; return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase()) },
                                first: ge(function() { return [0] }),
                                last: ge(function(e, t) { return [t - 1] }),
                                eq: ge(function(e, t, i) { return [i < 0 ? i + t : i] }),
                                even: ge(function(e, t) { for (var i = 0; i < t; i += 2) e.push(i); return e }),
                                odd: ge(function(e, t) { for (var i = 1; i < t; i += 2) e.push(i); return e }),
                                lt: ge(function(e, t, i) { for (var n = i < 0 ? i + t : i > t ? t : i; --n >= 0;) e.push(n); return e }),
                                gt: ge(function(e, t, i) { for (var n = i < 0 ? i + t : i; ++n < t;) e.push(n); return e })
                            }
                        }).pseudos.nth = n.pseudos.eq, { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) n.pseudos[t] = he(t);
                    for (t in { submit: !0, reset: !0 }) n.pseudos[t] = fe(t);

                    function ye() {}

                    function we(e) { for (var t = 0, i = e.length, n = ""; t < i; t++) n += e[t].value; return n }

                    function be(e, t, i) {
                        var n = t.dir,
                            a = t.next,
                            r = a || n,
                            s = i && "parentNode" === r,
                            o = S++;
                        return t.first ? function(t, i, a) {
                            for (; t = t[n];)
                                if (1 === t.nodeType || s) return e(t, i, a);
                            return !1
                        } : function(t, i, l) {
                            var d, c, u, p = [T, o];
                            if (l) {
                                for (; t = t[n];)
                                    if ((1 === t.nodeType || s) && e(t, i, l)) return !0
                            } else
                                for (; t = t[n];)
                                    if (1 === t.nodeType || s)
                                        if (c = (u = t[b] || (t[b] = {}))[t.uniqueID] || (u[t.uniqueID] = {}), a && a === t.nodeName.toLowerCase()) t = t[n] || t;
                                        else { if ((d = c[r]) && d[0] === T && d[1] === o) return p[2] = d[2]; if (c[r] = p, p[2] = e(t, i, l)) return !0 } return !1
                        }
                    }

                    function xe(e) {
                        return e.length > 1 ? function(t, i, n) {
                            for (var a = e.length; a--;)
                                if (!e[a](t, i, n)) return !1;
                            return !0
                        } : e[0]
                    }

                    function Te(e, t, i, n, a) { for (var r, s = [], o = 0, l = e.length, d = null != t; o < l; o++)(r = e[o]) && (i && !i(r, n, a) || (s.push(r), d && t.push(o))); return s }

                    function Se(e, t, i, n, a, r) {
                        return n && !n[b] && (n = Se(n)), a && !a[b] && (a = Se(a, r)), de(function(r, s, o, l) {
                            var d, c, u, p = [],
                                h = [],
                                f = s.length,
                                m = r || function(e, t, i) { for (var n = 0, a = t.length; n < a; n++) oe(e, t[n], i); return i }(t || "*", o.nodeType ? [o] : o, []),
                                g = !e || !r && t ? m : Te(m, p, e, o, l),
                                v = i ? a || (r ? e : f || n) ? [] : s : g;
                            if (i && i(g, v, o, l), n)
                                for (d = Te(v, h), n(d, [], o, l), c = d.length; c--;)(u = d[c]) && (v[h[c]] = !(g[h[c]] = u));
                            if (r) {
                                if (a || e) {
                                    if (a) {
                                        for (d = [], c = v.length; c--;)(u = v[c]) && d.push(g[c] = u);
                                        a(null, v = [], d, l)
                                    }
                                    for (c = v.length; c--;)(u = v[c]) && (d = a ? N(r, u) : p[c]) > -1 && (r[d] = !(s[d] = u))
                                }
                            } else v = Te(v === s ? v.splice(f, v.length) : v), a ? a(null, s, v, l) : L.apply(s, v)
                        })
                    }

                    function Ce(e) {
                        for (var t, i, a, r = e.length, s = n.relative[e[0].type], o = s || n.relative[" "], l = s ? 1 : 0, c = be(function(e) { return e === t }, o, !0), u = be(function(e) { return N(t, e) > -1 }, o, !0), p = [function(e, i, n) { var a = !s && (n || i !== d) || ((t = i).nodeType ? c(e, i, n) : u(e, i, n)); return t = null, a }]; l < r; l++)
                            if (i = n.relative[e[l].type]) p = [be(xe(p), i)];
                            else {
                                if ((i = n.filter[e[l].type].apply(null, e[l].matches))[b]) { for (a = ++l; a < r && !n.relative[e[a].type]; a++); return Se(l > 1 && xe(p), l > 1 && we(e.slice(0, l - 1).concat({ value: " " === e[l - 2].type ? "*" : "" })).replace(V, "$1"), i, l < a && Ce(e.slice(l, a)), a < r && Ce(e = e.slice(a)), a < r && we(e)) }
                                p.push(i)
                            }
                        return xe(p)
                    }
                    return ye.prototype = n.filters = n.pseudos, n.setFilters = new ye, s = oe.tokenize = function(e, t) { var i, a, r, s, o, l, d, c = E[e + " "]; if (c) return t ? 0 : c.slice(0); for (o = e, l = [], d = n.preFilter; o;) { for (s in i && !(a = X.exec(o)) || (a && (o = o.slice(a[0].length) || o), l.push(r = [])), i = !1, (a = F.exec(o)) && (i = a.shift(), r.push({ value: i, type: a[0].replace(V, " ") }), o = o.slice(i.length)), n.filter) !(a = U[s].exec(o)) || d[s] && !(a = d[s](a)) || (i = a.shift(), r.push({ value: i, type: s, matches: a }), o = o.slice(i.length)); if (!i) break } return t ? o.length : o ? oe.error(e) : E(e, l).slice(0) }, o = oe.compile = function(e, t) {
                        var i, a = [],
                            r = [],
                            o = A[e + " "];
                        if (!o) {
                            for (t || (t = s(e)), i = t.length; i--;)(o = Ce(t[i]))[b] ? a.push(o) : r.push(o);
                            (o = A(e, function(e, t) {
                                var i = t.length > 0,
                                    a = e.length > 0,
                                    r = function(r, s, o, l, c) {
                                        var u, f, g, v = 0,
                                            y = "0",
                                            w = r && [],
                                            b = [],
                                            x = d,
                                            S = r || a && n.find.TAG("*", c),
                                            C = T += null == x ? 1 : Math.random() || .1,
                                            E = S.length;
                                        for (c && (d = s === h || s || c); y !== E && null != (u = S[y]); y++) {
                                            if (a && u) {
                                                for (f = 0, s || u.ownerDocument === h || (p(u), o = !m); g = e[f++];)
                                                    if (g(u, s || h, o)) { l.push(u); break }
                                                c && (T = C)
                                            }
                                            i && ((u = !g && u) && v--, r && w.push(u))
                                        }
                                        if (v += y, i && y !== v) {
                                            for (f = 0; g = t[f++];) g(w, b, s, o);
                                            if (r) {
                                                if (v > 0)
                                                    for (; y--;) w[y] || b[y] || (b[y] = I.call(l));
                                                b = Te(b)
                                            }
                                            L.apply(l, b), c && !r && b.length > 0 && v + t.length > 1 && oe.uniqueSort(l)
                                        }
                                        return c && (T = C, d = x), w
                                    };
                                return i ? de(r) : r
                            }(r, a))).selector = e
                        }
                        return o
                    }, l = oe.select = function(e, t, i, a) {
                        var r, l, d, c, u, p = "function" == typeof e && e,
                            h = !a && s(e = p.selector || e);
                        if (i = i || [], 1 === h.length) {
                            if ((l = h[0] = h[0].slice(0)).length > 2 && "ID" === (d = l[0]).type && 9 === t.nodeType && m && n.relative[l[1].type]) {
                                if (!(t = (n.find.ID(d.matches[0].replace(te, ie), t) || [])[0])) return i;
                                p && (t = t.parentNode), e = e.slice(l.shift().value.length)
                            }
                            for (r = U.needsContext.test(e) ? 0 : l.length; r-- && (d = l[r], !n.relative[c = d.type]);)
                                if ((u = n.find[c]) && (a = u(d.matches[0].replace(te, ie), ee.test(l[0].type) && ve(t.parentNode) || t))) { if (l.splice(r, 1), !(e = a.length && we(l))) return L.apply(i, a), i; break }
                        }
                        return (p || o(e, h))(a, t, !m, i, !t || ee.test(e) && ve(t.parentNode) || t), i
                    }, i.sortStable = b.split("").sort(P).join("") === b, i.detectDuplicates = !!u, p(), i.sortDetached = ce(function(e) { return 1 & e.compareDocumentPosition(h.createElement("fieldset")) }), ce(function(e) { return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href") }) || ue("type|href|height|width", function(e, t, i) { if (!i) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2) }), i.attributes && ce(function(e) { return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value") }) || ue("value", function(e, t, i) { if (!i && "input" === e.nodeName.toLowerCase()) return e.defaultValue }), ce(function(e) { return null == e.getAttribute("disabled") }) || ue(O, function(e, t, i) { var n; if (!i) return !0 === e[t] ? t.toLowerCase() : (n = e.getAttributeNode(t)) && n.specified ? n.value : null }), oe
                }(i);
            S.find = A, S.expr = A.selectors, S.expr[":"] = S.expr.pseudos, S.uniqueSort = S.unique = A.uniqueSort, S.text = A.getText, S.isXMLDoc = A.isXML, S.contains = A.contains, S.escapeSelector = A.escape;
            var M = function(e, t, i) {
                    for (var n = [], a = void 0 !== i;
                        (e = e[t]) && 9 !== e.nodeType;)
                        if (1 === e.nodeType) {
                            if (a && S(e).is(i)) break;
                            n.push(e)
                        }
                    return n
                },
                P = function(e, t) { for (var i = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && i.push(e); return i },
                k = S.expr.match.needsContext;

            function z(e, t) { return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase() }
            var I = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;

            function D(e, t, i) { return y(t) ? S.grep(e, function(e, n) { return !!t.call(e, n, e) !== i }) : t.nodeType ? S.grep(e, function(e) { return e === t !== i }) : "string" != typeof t ? S.grep(e, function(e) { return u.call(t, e) > -1 !== i }) : S.filter(t, e, i) }
            S.filter = function(e, t, i) { var n = t[0]; return i && (e = ":not(" + e + ")"), 1 === t.length && 1 === n.nodeType ? S.find.matchesSelector(n, e) ? [n] : [] : S.find.matches(e, S.grep(t, function(e) { return 1 === e.nodeType })) }, S.fn.extend({
                find: function(e) {
                    var t, i, n = this.length,
                        a = this;
                    if ("string" != typeof e) return this.pushStack(S(e).filter(function() {
                        for (t = 0; t < n; t++)
                            if (S.contains(a[t], this)) return !0
                    }));
                    for (i = this.pushStack([]), t = 0; t < n; t++) S.find(e, a[t], i);
                    return n > 1 ? S.uniqueSort(i) : i
                },
                filter: function(e) { return this.pushStack(D(this, e || [], !1)) },
                not: function(e) { return this.pushStack(D(this, e || [], !0)) },
                is: function(e) { return !!D(this, "string" == typeof e && k.test(e) ? S(e) : e || [], !1).length }
            });
            var L, B = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;
            (S.fn.init = function(e, t, i) {
                var n, a;
                if (!e) return this;
                if (i = i || L, "string" == typeof e) {
                    if (!(n = "<" === e[0] && ">" === e[e.length - 1] && e.length >= 3 ? [null, e, null] : B.exec(e)) || !n[1] && t) return !t || t.jquery ? (t || i).find(e) : this.constructor(t).find(e);
                    if (n[1]) {
                        if (t = t instanceof S ? t[0] : t, S.merge(this, S.parseHTML(n[1], t && t.nodeType ? t.ownerDocument || t : s, !0)), I.test(n[1]) && S.isPlainObject(t))
                            for (n in t) y(this[n]) ? this[n](t[n]) : this.attr(n, t[n]);
                        return this
                    }
                    return (a = s.getElementById(n[2])) && (this[0] = a, this.length = 1), this
                }
                return e.nodeType ? (this[0] = e, this.length = 1, this) : y(e) ? void 0 !== i.ready ? i.ready(e) : e(S) : S.makeArray(e, this)
            }).prototype = S.fn, L = S(s);
            var N = /^(?:parents|prev(?:Until|All))/,
                O = { children: !0, contents: !0, next: !0, prev: !0 };

            function H(e, t) {
                for (;
                    (e = e[t]) && 1 !== e.nodeType;);
                return e
            }
            S.fn.extend({
                has: function(e) {
                    var t = S(e, this),
                        i = t.length;
                    return this.filter(function() {
                        for (var e = 0; e < i; e++)
                            if (S.contains(this, t[e])) return !0
                    })
                },
                closest: function(e, t) {
                    var i, n = 0,
                        a = this.length,
                        r = [],
                        s = "string" != typeof e && S(e);
                    if (!k.test(e))
                        for (; n < a; n++)
                            for (i = this[n]; i && i !== t; i = i.parentNode)
                                if (i.nodeType < 11 && (s ? s.index(i) > -1 : 1 === i.nodeType && S.find.matchesSelector(i, e))) { r.push(i); break }
                    return this.pushStack(r.length > 1 ? S.uniqueSort(r) : r)
                },
                index: function(e) { return e ? "string" == typeof e ? u.call(S(e), this[0]) : u.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 },
                add: function(e, t) { return this.pushStack(S.uniqueSort(S.merge(this.get(), S(e, t)))) },
                addBack: function(e) { return this.add(null == e ? this.prevObject : this.prevObject.filter(e)) }
            }), S.each({ parent: function(e) { var t = e.parentNode; return t && 11 !== t.nodeType ? t : null }, parents: function(e) { return M(e, "parentNode") }, parentsUntil: function(e, t, i) { return M(e, "parentNode", i) }, next: function(e) { return H(e, "nextSibling") }, prev: function(e) { return H(e, "previousSibling") }, nextAll: function(e) { return M(e, "nextSibling") }, prevAll: function(e) { return M(e, "previousSibling") }, nextUntil: function(e, t, i) { return M(e, "nextSibling", i) }, prevUntil: function(e, t, i) { return M(e, "previousSibling", i) }, siblings: function(e) { return P((e.parentNode || {}).firstChild, e) }, children: function(e) { return P(e.firstChild) }, contents: function(e) { return void 0 !== e.contentDocument ? e.contentDocument : (z(e, "template") && (e = e.content || e), S.merge([], e.childNodes)) } }, function(e, t) { S.fn[e] = function(i, n) { var a = S.map(this, t, i); return "Until" !== e.slice(-5) && (n = i), n && "string" == typeof n && (a = S.filter(n, a)), this.length > 1 && (O[e] || S.uniqueSort(a), N.test(e) && a.reverse()), this.pushStack(a) } });
            var R = /[^\x20\t\r\n\f]+/g;

            function $(e) { return e }

            function G(e) { throw e }

            function j(e, t, i, n) { var a; try { e && y(a = e.promise) ? a.call(e).done(t).fail(i) : e && y(a = e.then) ? a.call(e, t, i) : t.apply(void 0, [e].slice(n)) } catch (e) { i.apply(void 0, [e]) } }
            S.Callbacks = function(e) {
                e = "string" == typeof e ? function(e) { var t = {}; return S.each(e.match(R) || [], function(e, i) { t[i] = !0 }), t }(e) : S.extend({}, e);
                var t, i, n, a, r = [],
                    s = [],
                    o = -1,
                    l = function() {
                        for (a = a || e.once, n = t = !0; s.length; o = -1)
                            for (i = s.shift(); ++o < r.length;) !1 === r[o].apply(i[0], i[1]) && e.stopOnFalse && (o = r.length, i = !1);
                        e.memory || (i = !1), t = !1, a && (r = i ? [] : "")
                    },
                    d = {
                        add: function() { return r && (i && !t && (o = r.length - 1, s.push(i)), function t(i) { S.each(i, function(i, n) { y(n) ? e.unique && d.has(n) || r.push(n) : n && n.length && "string" !== T(n) && t(n) }) }(arguments), i && !t && l()), this },
                        remove: function() {
                            return S.each(arguments, function(e, t) {
                                for (var i;
                                    (i = S.inArray(t, r, i)) > -1;) r.splice(i, 1), i <= o && o--
                            }), this
                        },
                        has: function(e) { return e ? S.inArray(e, r) > -1 : r.length > 0 },
                        empty: function() { return r && (r = []), this },
                        disable: function() { return a = s = [], r = i = "", this },
                        disabled: function() { return !r },
                        lock: function() { return a = s = [], i || t || (r = i = ""), this },
                        locked: function() { return !!a },
                        fireWith: function(e, i) { return a || (i = [e, (i = i || []).slice ? i.slice() : i], s.push(i), t || l()), this },
                        fire: function() { return d.fireWith(this, arguments), this },
                        fired: function() { return !!n }
                    };
                return d
            }, S.extend({
                Deferred: function(e) {
                    var t = [
                            ["notify", "progress", S.Callbacks("memory"), S.Callbacks("memory"), 2],
                            ["resolve", "done", S.Callbacks("once memory"), S.Callbacks("once memory"), 0, "resolved"],
                            ["reject", "fail", S.Callbacks("once memory"), S.Callbacks("once memory"), 1, "rejected"]
                        ],
                        n = "pending",
                        a = {
                            state: function() { return n },
                            always: function() { return r.done(arguments).fail(arguments), this },
                            catch: function(e) { return a.then(null, e) },
                            pipe: function() {
                                var e = arguments;
                                return S.Deferred(function(i) {
                                    S.each(t, function(t, n) {
                                        var a = y(e[n[4]]) && e[n[4]];
                                        r[n[1]](function() {
                                            var e = a && a.apply(this, arguments);
                                            e && y(e.promise) ? e.promise().progress(i.notify).done(i.resolve).fail(i.reject) : i[n[0] + "With"](this, a ? [e] : arguments)
                                        })
                                    }), e = null
                                }).promise()
                            },
                            then: function(e, n, a) {
                                var r = 0;

                                function s(e, t, n, a) {
                                    return function() {
                                        var o = this,
                                            l = arguments,
                                            d = function() {
                                                var i, d;
                                                if (!(e < r)) {
                                                    if ((i = n.apply(o, l)) === t.promise()) throw new TypeError("Thenable self-resolution");
                                                    d = i && ("object" == typeof i || "function" == typeof i) && i.then, y(d) ? a ? d.call(i, s(r, t, $, a), s(r, t, G, a)) : (r++, d.call(i, s(r, t, $, a), s(r, t, G, a), s(r, t, $, t.notifyWith))) : (n !== $ && (o = void 0, l = [i]), (a || t.resolveWith)(o, l))
                                                }
                                            },
                                            c = a ? d : function() { try { d() } catch (i) { S.Deferred.exceptionHook && S.Deferred.exceptionHook(i, c.stackTrace), e + 1 >= r && (n !== G && (o = void 0, l = [i]), t.rejectWith(o, l)) } };
                                        e ? c() : (S.Deferred.getStackHook && (c.stackTrace = S.Deferred.getStackHook()), i.setTimeout(c))
                                    }
                                }
                                return S.Deferred(function(i) { t[0][3].add(s(0, i, y(a) ? a : $, i.notifyWith)), t[1][3].add(s(0, i, y(e) ? e : $)), t[2][3].add(s(0, i, y(n) ? n : G)) }).promise()
                            },
                            promise: function(e) { return null != e ? S.extend(e, a) : a }
                        },
                        r = {};
                    return S.each(t, function(e, i) {
                        var s = i[2],
                            o = i[5];
                        a[i[1]] = s.add, o && s.add(function() { n = o }, t[3 - e][2].disable, t[3 - e][3].disable, t[0][2].lock, t[0][3].lock), s.add(i[3].fire), r[i[0]] = function() { return r[i[0] + "With"](this === r ? void 0 : this, arguments), this }, r[i[0] + "With"] = s.fireWith
                    }), a.promise(r), e && e.call(r, r), r
                },
                when: function(e) {
                    var t = arguments.length,
                        i = t,
                        n = Array(i),
                        a = l.call(arguments),
                        r = S.Deferred(),
                        s = function(e) { return function(i) { n[e] = this, a[e] = arguments.length > 1 ? l.call(arguments) : i, --t || r.resolveWith(n, a) } };
                    if (t <= 1 && (j(e, r.done(s(i)).resolve, r.reject, !t), "pending" === r.state() || y(a[i] && a[i].then))) return r.then();
                    for (; i--;) j(a[i], s(i), r.reject);
                    return r.promise()
                }
            });
            var V = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
            S.Deferred.exceptionHook = function(e, t) { i.console && i.console.warn && e && V.test(e.name) && i.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t) }, S.readyException = function(e) { i.setTimeout(function() { throw e }) };
            var X = S.Deferred();

            function F() { s.removeEventListener("DOMContentLoaded", F), i.removeEventListener("load", F), S.ready() }
            S.fn.ready = function(e) { return X.then(e).catch(function(e) { S.readyException(e) }), this }, S.extend({
                isReady: !1,
                readyWait: 1,
                ready: function(e) {
                    (!0 === e ? --S.readyWait : S.isReady) || (S.isReady = !0, !0 !== e && --S.readyWait > 0 || X.resolveWith(s, [S]))
                }
            }), S.ready.then = X.then, "complete" === s.readyState || "loading" !== s.readyState && !s.documentElement.doScroll ? i.setTimeout(S.ready) : (s.addEventListener("DOMContentLoaded", F), i.addEventListener("load", F));
            var q = function(e, t, i, n, a, r, s) {
                    var o = 0,
                        l = e.length,
                        d = null == i;
                    if ("object" === T(i))
                        for (o in a = !0, i) q(e, t, o, i[o], !0, r, s);
                    else if (void 0 !== n && (a = !0, y(n) || (s = !0), d && (s ? (t.call(e, n), t = null) : (d = t, t = function(e, t, i) { return d.call(S(e), i) })), t))
                        for (; o < l; o++) t(e[o], i, s ? n : n.call(e[o], o, t(e[o], i)));
                    return a ? e : d ? t.call(e) : l ? t(e[0], i) : r
                },
                Y = /^-ms-/,
                W = /-([a-z])/g;

            function U(e, t) { return t.toUpperCase() }

            function K(e) { return e.replace(Y, "ms-").replace(W, U) }
            var J = function(e) { return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType };

            function Q() { this.expando = S.expando + Q.uid++ }
            Q.uid = 1, Q.prototype = {
                cache: function(e) { var t = e[this.expando]; return t || (t = {}, J(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, { value: t, configurable: !0 }))), t },
                set: function(e, t, i) {
                    var n, a = this.cache(e);
                    if ("string" == typeof t) a[K(t)] = i;
                    else
                        for (n in t) a[K(n)] = t[n];
                    return a
                },
                get: function(e, t) { return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][K(t)] },
                access: function(e, t, i) { return void 0 === t || t && "string" == typeof t && void 0 === i ? this.get(e, t) : (this.set(e, t, i), void 0 !== i ? i : t) },
                remove: function(e, t) { var i, n = e[this.expando]; if (void 0 !== n) { if (void 0 !== t) { i = (t = Array.isArray(t) ? t.map(K) : (t = K(t)) in n ? [t] : t.match(R) || []).length; for (; i--;) delete n[t[i]] }(void 0 === t || S.isEmptyObject(n)) && (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando]) } },
                hasData: function(e) { var t = e[this.expando]; return void 0 !== t && !S.isEmptyObject(t) }
            };
            var _ = new Q,
                Z = new Q,
                ee = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
                te = /[A-Z]/g;

            function ie(e, t, i) {
                var n;
                if (void 0 === i && 1 === e.nodeType)
                    if (n = "data-" + t.replace(te, "-$&").toLowerCase(), "string" == typeof(i = e.getAttribute(n))) {
                        try { i = function(e) { return "true" === e || "false" !== e && ("null" === e ? null : e === +e + "" ? +e : ee.test(e) ? JSON.parse(e) : e) }(i) } catch (e) {}
                        Z.set(e, t, i)
                    } else i = void 0;
                return i
            }
            S.extend({ hasData: function(e) { return Z.hasData(e) || _.hasData(e) }, data: function(e, t, i) { return Z.access(e, t, i) }, removeData: function(e, t) { Z.remove(e, t) }, _data: function(e, t, i) { return _.access(e, t, i) }, _removeData: function(e, t) { _.remove(e, t) } }), S.fn.extend({
                data: function(e, t) {
                    var i, n, a, r = this[0],
                        s = r && r.attributes;
                    if (void 0 === e) {
                        if (this.length && (a = Z.get(r), 1 === r.nodeType && !_.get(r, "hasDataAttrs"))) {
                            for (i = s.length; i--;) s[i] && 0 === (n = s[i].name).indexOf("data-") && (n = K(n.slice(5)), ie(r, n, a[n]));
                            _.set(r, "hasDataAttrs", !0)
                        }
                        return a
                    }
                    return "object" == typeof e ? this.each(function() { Z.set(this, e) }) : q(this, function(t) {
                        var i;
                        if (r && void 0 === t) return void 0 !== (i = Z.get(r, e)) ? i : void 0 !== (i = ie(r, e)) ? i : void 0;
                        this.each(function() { Z.set(this, e, t) })
                    }, null, t, arguments.length > 1, null, !0)
                },
                removeData: function(e) { return this.each(function() { Z.remove(this, e) }) }
            }), S.extend({
                queue: function(e, t, i) { var n; if (e) return t = (t || "fx") + "queue", n = _.get(e, t), i && (!n || Array.isArray(i) ? n = _.access(e, t, S.makeArray(i)) : n.push(i)), n || [] },
                dequeue: function(e, t) {
                    t = t || "fx";
                    var i = S.queue(e, t),
                        n = i.length,
                        a = i.shift(),
                        r = S._queueHooks(e, t);
                    "inprogress" === a && (a = i.shift(), n--), a && ("fx" === t && i.unshift("inprogress"), delete r.stop, a.call(e, function() { S.dequeue(e, t) }, r)), !n && r && r.empty.fire()
                },
                _queueHooks: function(e, t) { var i = t + "queueHooks"; return _.get(e, i) || _.access(e, i, { empty: S.Callbacks("once memory").add(function() { _.remove(e, [t + "queue", i]) }) }) }
            }), S.fn.extend({
                queue: function(e, t) {
                    var i = 2;
                    return "string" != typeof e && (t = e, e = "fx", i--), arguments.length < i ? S.queue(this[0], e) : void 0 === t ? this : this.each(function() {
                        var i = S.queue(this, e, t);
                        S._queueHooks(this, e), "fx" === e && "inprogress" !== i[0] && S.dequeue(this, e)
                    })
                },
                dequeue: function(e) { return this.each(function() { S.dequeue(this, e) }) },
                clearQueue: function(e) { return this.queue(e || "fx", []) },
                promise: function(e, t) {
                    var i, n = 1,
                        a = S.Deferred(),
                        r = this,
                        s = this.length,
                        o = function() {--n || a.resolveWith(r, [r]) };
                    for ("string" != typeof e && (t = e, e = void 0), e = e || "fx"; s--;)(i = _.get(r[s], e + "queueHooks")) && i.empty && (n++, i.empty.add(o));
                    return o(), a.promise(t)
                }
            });
            var ne = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
                ae = new RegExp("^(?:([+-])=|)(" + ne + ")([a-z%]*)$", "i"),
                re = ["Top", "Right", "Bottom", "Left"],
                se = s.documentElement,
                oe = function(e) { return S.contains(e.ownerDocument, e) },
                le = { composed: !0 };
            se.getRootNode && (oe = function(e) { return S.contains(e.ownerDocument, e) || e.getRootNode(le) === e.ownerDocument });
            var de = function(e, t) { return "none" === (e = t || e).style.display || "" === e.style.display && oe(e) && "none" === S.css(e, "display") },
                ce = function(e, t, i, n) { var a, r, s = {}; for (r in t) s[r] = e.style[r], e.style[r] = t[r]; for (r in a = i.apply(e, n || []), t) e.style[r] = s[r]; return a };

            function ue(e, t, i, n) {
                var a, r, s = 20,
                    o = n ? function() { return n.cur() } : function() { return S.css(e, t, "") },
                    l = o(),
                    d = i && i[3] || (S.cssNumber[t] ? "" : "px"),
                    c = e.nodeType && (S.cssNumber[t] || "px" !== d && +l) && ae.exec(S.css(e, t));
                if (c && c[3] !== d) {
                    for (l /= 2, d = d || c[3], c = +l || 1; s--;) S.style(e, t, c + d), (1 - r) * (1 - (r = o() / l || .5)) <= 0 && (s = 0), c /= r;
                    c *= 2, S.style(e, t, c + d), i = i || []
                }
                return i && (c = +c || +l || 0, a = i[1] ? c + (i[1] + 1) * i[2] : +i[2], n && (n.unit = d, n.start = c, n.end = a)), a
            }
            var pe = {};

            function he(e) {
                var t, i = e.ownerDocument,
                    n = e.nodeName,
                    a = pe[n];
                return a || (t = i.body.appendChild(i.createElement(n)), a = S.css(t, "display"), t.parentNode.removeChild(t), "none" === a && (a = "block"), pe[n] = a, a)
            }

            function fe(e, t) { for (var i, n, a = [], r = 0, s = e.length; r < s; r++)(n = e[r]).style && (i = n.style.display, t ? ("none" === i && (a[r] = _.get(n, "display") || null, a[r] || (n.style.display = "")), "" === n.style.display && de(n) && (a[r] = he(n))) : "none" !== i && (a[r] = "none", _.set(n, "display", i))); for (r = 0; r < s; r++) null != a[r] && (e[r].style.display = a[r]); return e }
            S.fn.extend({ show: function() { return fe(this, !0) }, hide: function() { return fe(this) }, toggle: function(e) { return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function() { de(this) ? S(this).show() : S(this).hide() }) } });
            var me = /^(?:checkbox|radio)$/i,
                ge = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i,
                ve = /^$|^module$|\/(?:java|ecma)script/i,
                ye = { option: [1, "<select multiple='multiple'>", "</select>"], thead: [1, "<table>", "</table>"], col: [2, "<table><colgroup>", "</colgroup></table>"], tr: [2, "<table><tbody>", "</tbody></table>"], td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], _default: [0, "", ""] };

            function we(e, t) { var i; return i = void 0 !== e.getElementsByTagName ? e.getElementsByTagName(t || "*") : void 0 !== e.querySelectorAll ? e.querySelectorAll(t || "*") : [], void 0 === t || t && z(e, t) ? S.merge([e], i) : i }

            function be(e, t) { for (var i = 0, n = e.length; i < n; i++) _.set(e[i], "globalEval", !t || _.get(t[i], "globalEval")) }
            ye.optgroup = ye.option, ye.tbody = ye.tfoot = ye.colgroup = ye.caption = ye.thead, ye.th = ye.td;
            var xe, Te, Se = /<|&#?\w+;/;

            function Ce(e, t, i, n, a) {
                for (var r, s, o, l, d, c, u = t.createDocumentFragment(), p = [], h = 0, f = e.length; h < f; h++)
                    if ((r = e[h]) || 0 === r)
                        if ("object" === T(r)) S.merge(p, r.nodeType ? [r] : r);
                        else if (Se.test(r)) {
                    for (s = s || u.appendChild(t.createElement("div")), o = (ge.exec(r) || ["", ""])[1].toLowerCase(), l = ye[o] || ye._default, s.innerHTML = l[1] + S.htmlPrefilter(r) + l[2], c = l[0]; c--;) s = s.lastChild;
                    S.merge(p, s.childNodes), (s = u.firstChild).textContent = ""
                } else p.push(t.createTextNode(r));
                for (u.textContent = "", h = 0; r = p[h++];)
                    if (n && S.inArray(r, n) > -1) a && a.push(r);
                    else if (d = oe(r), s = we(u.appendChild(r), "script"), d && be(s), i)
                    for (c = 0; r = s[c++];) ve.test(r.type || "") && i.push(r);
                return u
            }
            xe = s.createDocumentFragment().appendChild(s.createElement("div")), (Te = s.createElement("input")).setAttribute("type", "radio"), Te.setAttribute("checked", "checked"), Te.setAttribute("name", "t"), xe.appendChild(Te), v.checkClone = xe.cloneNode(!0).cloneNode(!0).lastChild.checked, xe.innerHTML = "<textarea>x</textarea>", v.noCloneChecked = !!xe.cloneNode(!0).lastChild.defaultValue;
            var Ee = /^key/,
                Ae = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
                Me = /^([^.]*)(?:\.(.+)|)/;

            function Pe() { return !0 }

            function ke() { return !1 }

            function ze(e, t) { return e === function() { try { return s.activeElement } catch (e) {} }() == ("focus" === t) }

            function Ie(e, t, i, n, a, r) {
                var s, o;
                if ("object" == typeof t) { for (o in "string" != typeof i && (n = n || i, i = void 0), t) Ie(e, o, i, n, t[o], r); return e }
                if (null == n && null == a ? (a = i, n = i = void 0) : null == a && ("string" == typeof i ? (a = n, n = void 0) : (a = n, n = i, i = void 0)), !1 === a) a = ke;
                else if (!a) return e;
                return 1 === r && (s = a, (a = function(e) { return S().off(e), s.apply(this, arguments) }).guid = s.guid || (s.guid = S.guid++)), e.each(function() { S.event.add(this, t, a, n, i) })
            }

            function De(e, t, i) {
                i ? (_.set(e, t, !1), S.event.add(e, t, {
                    namespace: !1,
                    handler: function(e) {
                        var n, a, r = _.get(this, t);
                        if (1 & e.isTrigger && this[t]) {
                            if (r.length)(S.event.special[t] || {}).delegateType && e.stopPropagation();
                            else if (r = l.call(arguments), _.set(this, t, r), n = i(this, t), this[t](), r !== (a = _.get(this, t)) || n ? _.set(this, t, !1) : a = {}, r !== a) return e.stopImmediatePropagation(), e.preventDefault(), a.value
                        } else r.length && (_.set(this, t, { value: S.event.trigger(S.extend(r[0], S.Event.prototype), r.slice(1), this) }), e.stopImmediatePropagation())
                    }
                })) : void 0 === _.get(e, t) && S.event.add(e, t, Pe)
            }
            S.event = {
                global: {},
                add: function(e, t, i, n, a) {
                    var r, s, o, l, d, c, u, p, h, f, m, g = _.get(e);
                    if (g)
                        for (i.handler && (i = (r = i).handler, a = r.selector), a && S.find.matchesSelector(se, a), i.guid || (i.guid = S.guid++), (l = g.events) || (l = g.events = {}), (s = g.handle) || (s = g.handle = function(t) { return void 0 !== S && S.event.triggered !== t.type ? S.event.dispatch.apply(e, arguments) : void 0 }), d = (t = (t || "").match(R) || [""]).length; d--;) h = m = (o = Me.exec(t[d]) || [])[1], f = (o[2] || "").split(".").sort(), h && (u = S.event.special[h] || {}, h = (a ? u.delegateType : u.bindType) || h, u = S.event.special[h] || {}, c = S.extend({ type: h, origType: m, data: n, handler: i, guid: i.guid, selector: a, needsContext: a && S.expr.match.needsContext.test(a), namespace: f.join(".") }, r), (p = l[h]) || ((p = l[h] = []).delegateCount = 0, u.setup && !1 !== u.setup.call(e, n, f, s) || e.addEventListener && e.addEventListener(h, s)), u.add && (u.add.call(e, c), c.handler.guid || (c.handler.guid = i.guid)), a ? p.splice(p.delegateCount++, 0, c) : p.push(c), S.event.global[h] = !0)
                },
                remove: function(e, t, i, n, a) {
                    var r, s, o, l, d, c, u, p, h, f, m, g = _.hasData(e) && _.get(e);
                    if (g && (l = g.events)) {
                        for (d = (t = (t || "").match(R) || [""]).length; d--;)
                            if (h = m = (o = Me.exec(t[d]) || [])[1], f = (o[2] || "").split(".").sort(), h) {
                                for (u = S.event.special[h] || {}, p = l[h = (n ? u.delegateType : u.bindType) || h] || [], o = o[2] && new RegExp("(^|\\.)" + f.join("\\.(?:.*\\.|)") + "(\\.|$)"), s = r = p.length; r--;) c = p[r], !a && m !== c.origType || i && i.guid !== c.guid || o && !o.test(c.namespace) || n && n !== c.selector && ("**" !== n || !c.selector) || (p.splice(r, 1), c.selector && p.delegateCount--, u.remove && u.remove.call(e, c));
                                s && !p.length && (u.teardown && !1 !== u.teardown.call(e, f, g.handle) || S.removeEvent(e, h, g.handle), delete l[h])
                            } else
                                for (h in l) S.event.remove(e, h + t[d], i, n, !0);
                        S.isEmptyObject(l) && _.remove(e, "handle events")
                    }
                },
                dispatch: function(e) {
                    var t, i, n, a, r, s, o = S.event.fix(e),
                        l = new Array(arguments.length),
                        d = (_.get(this, "events") || {})[o.type] || [],
                        c = S.event.special[o.type] || {};
                    for (l[0] = o, t = 1; t < arguments.length; t++) l[t] = arguments[t];
                    if (o.delegateTarget = this, !c.preDispatch || !1 !== c.preDispatch.call(this, o)) {
                        for (s = S.event.handlers.call(this, o, d), t = 0;
                            (a = s[t++]) && !o.isPropagationStopped();)
                            for (o.currentTarget = a.elem, i = 0;
                                (r = a.handlers[i++]) && !o.isImmediatePropagationStopped();) o.rnamespace && !1 !== r.namespace && !o.rnamespace.test(r.namespace) || (o.handleObj = r, o.data = r.data, void 0 !== (n = ((S.event.special[r.origType] || {}).handle || r.handler).apply(a.elem, l)) && !1 === (o.result = n) && (o.preventDefault(), o.stopPropagation()));
                        return c.postDispatch && c.postDispatch.call(this, o), o.result
                    }
                },
                handlers: function(e, t) {
                    var i, n, a, r, s, o = [],
                        l = t.delegateCount,
                        d = e.target;
                    if (l && d.nodeType && !("click" === e.type && e.button >= 1))
                        for (; d !== this; d = d.parentNode || this)
                            if (1 === d.nodeType && ("click" !== e.type || !0 !== d.disabled)) {
                                for (r = [], s = {}, i = 0; i < l; i++) void 0 === s[a = (n = t[i]).selector + " "] && (s[a] = n.needsContext ? S(a, this).index(d) > -1 : S.find(a, this, null, [d]).length), s[a] && r.push(n);
                                r.length && o.push({ elem: d, handlers: r })
                            }
                    return d = this, l < t.length && o.push({ elem: d, handlers: t.slice(l) }), o
                },
                addProp: function(e, t) { Object.defineProperty(S.Event.prototype, e, { enumerable: !0, configurable: !0, get: y(t) ? function() { if (this.originalEvent) return t(this.originalEvent) } : function() { if (this.originalEvent) return this.originalEvent[e] }, set: function(t) { Object.defineProperty(this, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) } }) },
                fix: function(e) { return e[S.expando] ? e : new S.Event(e) },
                special: { load: { noBubble: !0 }, click: { setup: function(e) { var t = this || e; return me.test(t.type) && t.click && z(t, "input") && De(t, "click", Pe), !1 }, trigger: function(e) { var t = this || e; return me.test(t.type) && t.click && z(t, "input") && De(t, "click"), !0 }, _default: function(e) { var t = e.target; return me.test(t.type) && t.click && z(t, "input") && _.get(t, "click") || z(t, "a") } }, beforeunload: { postDispatch: function(e) { void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result) } } }
            }, S.removeEvent = function(e, t, i) { e.removeEventListener && e.removeEventListener(t, i) }, S.Event = function(e, t) {
                if (!(this instanceof S.Event)) return new S.Event(e, t);
                e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? Pe : ke, this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target, this.currentTarget = e.currentTarget, this.relatedTarget = e.relatedTarget) : this.type = e, t && S.extend(this, t), this.timeStamp = e && e.timeStamp || Date.now(), this[S.expando] = !0
            }, S.Event.prototype = {
                constructor: S.Event,
                isDefaultPrevented: ke,
                isPropagationStopped: ke,
                isImmediatePropagationStopped: ke,
                isSimulated: !1,
                preventDefault: function() {
                    var e = this.originalEvent;
                    this.isDefaultPrevented = Pe, e && !this.isSimulated && e.preventDefault()
                },
                stopPropagation: function() {
                    var e = this.originalEvent;
                    this.isPropagationStopped = Pe, e && !this.isSimulated && e.stopPropagation()
                },
                stopImmediatePropagation: function() {
                    var e = this.originalEvent;
                    this.isImmediatePropagationStopped = Pe, e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation()
                }
            }, S.each({ altKey: !0, bubbles: !0, cancelable: !0, changedTouches: !0, ctrlKey: !0, detail: !0, eventPhase: !0, metaKey: !0, pageX: !0, pageY: !0, shiftKey: !0, view: !0, char: !0, code: !0, charCode: !0, key: !0, keyCode: !0, button: !0, buttons: !0, clientX: !0, clientY: !0, offsetX: !0, offsetY: !0, pointerId: !0, pointerType: !0, screenX: !0, screenY: !0, targetTouches: !0, toElement: !0, touches: !0, which: function(e) { var t = e.button; return null == e.which && Ee.test(e.type) ? null != e.charCode ? e.charCode : e.keyCode : !e.which && void 0 !== t && Ae.test(e.type) ? 1 & t ? 1 : 2 & t ? 3 : 4 & t ? 2 : 0 : e.which } }, S.event.addProp), S.each({ focus: "focusin", blur: "focusout" }, function(e, t) { S.event.special[e] = { setup: function() { return De(this, e, ze), !1 }, trigger: function() { return De(this, e), !0 }, delegateType: t } }), S.each({ mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout" }, function(e, t) {
                S.event.special[e] = {
                    delegateType: t,
                    bindType: t,
                    handle: function(e) {
                        var i, n = e.relatedTarget,
                            a = e.handleObj;
                        return n && (n === this || S.contains(this, n)) || (e.type = a.origType, i = a.handler.apply(this, arguments), e.type = t), i
                    }
                }
            }), S.fn.extend({ on: function(e, t, i, n) { return Ie(this, e, t, i, n) }, one: function(e, t, i, n) { return Ie(this, e, t, i, n, 1) }, off: function(e, t, i) { var n, a; if (e && e.preventDefault && e.handleObj) return n = e.handleObj, S(e.delegateTarget).off(n.namespace ? n.origType + "." + n.namespace : n.origType, n.selector, n.handler), this; if ("object" == typeof e) { for (a in e) this.off(a, t, e[a]); return this } return !1 !== t && "function" != typeof t || (i = t, t = void 0), !1 === i && (i = ke), this.each(function() { S.event.remove(this, e, i, t) }) } });
            var Le = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
                Be = /<script|<style|<link/i,
                Ne = /checked\s*(?:[^=]|=\s*.checked.)/i,
                Oe = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;

            function He(e, t) { return z(e, "table") && z(11 !== t.nodeType ? t : t.firstChild, "tr") && S(e).children("tbody")[0] || e }

            function Re(e) { return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e }

            function $e(e) { return "true/" === (e.type || "").slice(0, 5) ? e.type = e.type.slice(5) : e.removeAttribute("type"), e }

            function Ge(e, t) {
                var i, n, a, r, s, o, l, d;
                if (1 === t.nodeType) {
                    if (_.hasData(e) && (r = _.access(e), s = _.set(t, r), d = r.events))
                        for (a in delete s.handle, s.events = {}, d)
                            for (i = 0, n = d[a].length; i < n; i++) S.event.add(t, a, d[a][i]);
                    Z.hasData(e) && (o = Z.access(e), l = S.extend({}, o), Z.set(t, l))
                }
            }

            function je(e, t, i, n) {
                t = d.apply([], t);
                var a, r, s, o, l, c, u = 0,
                    p = e.length,
                    h = p - 1,
                    f = t[0],
                    m = y(f);
                if (m || p > 1 && "string" == typeof f && !v.checkClone && Ne.test(f)) return e.each(function(a) {
                    var r = e.eq(a);
                    m && (t[0] = f.call(this, a, r.html())), je(r, t, i, n)
                });
                if (p && (r = (a = Ce(t, e[0].ownerDocument, !1, e, n)).firstChild, 1 === a.childNodes.length && (a = r), r || n)) {
                    for (o = (s = S.map(we(a, "script"), Re)).length; u < p; u++) l = a, u !== h && (l = S.clone(l, !0, !0), o && S.merge(s, we(l, "script"))), i.call(e[u], l, u);
                    if (o)
                        for (c = s[s.length - 1].ownerDocument, S.map(s, $e), u = 0; u < o; u++) l = s[u], ve.test(l.type || "") && !_.access(l, "globalEval") && S.contains(c, l) && (l.src && "module" !== (l.type || "").toLowerCase() ? S._evalUrl && !l.noModule && S._evalUrl(l.src, { nonce: l.nonce || l.getAttribute("nonce") }) : x(l.textContent.replace(Oe, ""), l, c))
                }
                return e
            }

            function Ve(e, t, i) { for (var n, a = t ? S.filter(t, e) : e, r = 0; null != (n = a[r]); r++) i || 1 !== n.nodeType || S.cleanData(we(n)), n.parentNode && (i && oe(n) && be(we(n, "script")), n.parentNode.removeChild(n)); return e }
            S.extend({
                htmlPrefilter: function(e) { return e.replace(Le, "<$1></$2>") },
                clone: function(e, t, i) {
                    var n, a, r, s, o, l, d, c = e.cloneNode(!0),
                        u = oe(e);
                    if (!(v.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || S.isXMLDoc(e)))
                        for (s = we(c), n = 0, a = (r = we(e)).length; n < a; n++) o = r[n], l = s[n], void 0, "input" === (d = l.nodeName.toLowerCase()) && me.test(o.type) ? l.checked = o.checked : "input" !== d && "textarea" !== d || (l.defaultValue = o.defaultValue);
                    if (t)
                        if (i)
                            for (r = r || we(e), s = s || we(c), n = 0, a = r.length; n < a; n++) Ge(r[n], s[n]);
                        else Ge(e, c);
                    return (s = we(c, "script")).length > 0 && be(s, !u && we(e, "script")), c
                },
                cleanData: function(e) {
                    for (var t, i, n, a = S.event.special, r = 0; void 0 !== (i = e[r]); r++)
                        if (J(i)) {
                            if (t = i[_.expando]) {
                                if (t.events)
                                    for (n in t.events) a[n] ? S.event.remove(i, n) : S.removeEvent(i, n, t.handle);
                                i[_.expando] = void 0
                            }
                            i[Z.expando] && (i[Z.expando] = void 0)
                        }
                }
            }), S.fn.extend({
                detach: function(e) { return Ve(this, e, !0) },
                remove: function(e) { return Ve(this, e) },
                text: function(e) { return q(this, function(e) { return void 0 === e ? S.text(this) : this.empty().each(function() { 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e) }) }, null, e, arguments.length) },
                append: function() { return je(this, arguments, function(e) { 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || He(this, e).appendChild(e) }) },
                prepend: function() {
                    return je(this, arguments, function(e) {
                        if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
                            var t = He(this, e);
                            t.insertBefore(e, t.firstChild)
                        }
                    })
                },
                before: function() { return je(this, arguments, function(e) { this.parentNode && this.parentNode.insertBefore(e, this) }) },
                after: function() { return je(this, arguments, function(e) { this.parentNode && this.parentNode.insertBefore(e, this.nextSibling) }) },
                empty: function() { for (var e, t = 0; null != (e = this[t]); t++) 1 === e.nodeType && (S.cleanData(we(e, !1)), e.textContent = ""); return this },
                clone: function(e, t) { return e = null != e && e, t = null == t ? e : t, this.map(function() { return S.clone(this, e, t) }) },
                html: function(e) {
                    return q(this, function(e) {
                        var t = this[0] || {},
                            i = 0,
                            n = this.length;
                        if (void 0 === e && 1 === t.nodeType) return t.innerHTML;
                        if ("string" == typeof e && !Be.test(e) && !ye[(ge.exec(e) || ["", ""])[1].toLowerCase()]) {
                            e = S.htmlPrefilter(e);
                            try {
                                for (; i < n; i++) 1 === (t = this[i] || {}).nodeType && (S.cleanData(we(t, !1)), t.innerHTML = e);
                                t = 0
                            } catch (e) {}
                        }
                        t && this.empty().append(e)
                    }, null, e, arguments.length)
                },
                replaceWith: function() {
                    var e = [];
                    return je(this, arguments, function(t) {
                        var i = this.parentNode;
                        S.inArray(this, e) < 0 && (S.cleanData(we(this)), i && i.replaceChild(t, this))
                    }, e)
                }
            }), S.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function(e, t) { S.fn[e] = function(e) { for (var i, n = [], a = S(e), r = a.length - 1, s = 0; s <= r; s++) i = s === r ? this : this.clone(!0), S(a[s])[t](i), c.apply(n, i.get()); return this.pushStack(n) } });
            var Xe = new RegExp("^(" + ne + ")(?!px)[a-z%]+$", "i"),
                Fe = function(e) { var t = e.ownerDocument.defaultView; return t && t.opener || (t = i), t.getComputedStyle(e) },
                qe = new RegExp(re.join("|"), "i");

            function Ye(e, t, i) { var n, a, r, s, o = e.style; return (i = i || Fe(e)) && ("" !== (s = i.getPropertyValue(t) || i[t]) || oe(e) || (s = S.style(e, t)), !v.pixelBoxStyles() && Xe.test(s) && qe.test(t) && (n = o.width, a = o.minWidth, r = o.maxWidth, o.minWidth = o.maxWidth = o.width = s, s = i.width, o.width = n, o.minWidth = a, o.maxWidth = r)), void 0 !== s ? s + "" : s }

            function We(e, t) {
                return {
                    get: function() {
                        if (!e()) return (this.get = t).apply(this, arguments);
                        delete this.get
                    }
                }
            }! function() {
                function e() {
                    if (c) {
                        d.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0", c.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%", se.appendChild(d).appendChild(c);
                        var e = i.getComputedStyle(c);
                        n = "1%" !== e.top, l = 12 === t(e.marginLeft), c.style.right = "60%", o = 36 === t(e.right), a = 36 === t(e.width), c.style.position = "absolute", r = 12 === t(c.offsetWidth / 3), se.removeChild(d), c = null
                    }
                }

                function t(e) { return Math.round(parseFloat(e)) }
                var n, a, r, o, l, d = s.createElement("div"),
                    c = s.createElement("div");
                c.style && (c.style.backgroundClip = "content-box", c.cloneNode(!0).style.backgroundClip = "", v.clearCloneStyle = "content-box" === c.style.backgroundClip, S.extend(v, { boxSizingReliable: function() { return e(), a }, pixelBoxStyles: function() { return e(), o }, pixelPosition: function() { return e(), n }, reliableMarginLeft: function() { return e(), l }, scrollboxSize: function() { return e(), r } }))
            }();
            var Ue = ["Webkit", "Moz", "ms"],
                Ke = s.createElement("div").style,
                Je = {};

            function Qe(e) {
                var t = S.cssProps[e] || Je[e];
                return t || (e in Ke ? e : Je[e] = function(e) {
                    for (var t = e[0].toUpperCase() + e.slice(1), i = Ue.length; i--;)
                        if ((e = Ue[i] + t) in Ke) return e
                }(e) || e)
            }
            var _e = /^(none|table(?!-c[ea]).+)/,
                Ze = /^--/,
                et = { position: "absolute", visibility: "hidden", display: "block" },
                tt = { letterSpacing: "0", fontWeight: "400" };

            function it(e, t, i) { var n = ae.exec(t); return n ? Math.max(0, n[2] - (i || 0)) + (n[3] || "px") : t }

            function nt(e, t, i, n, a, r) {
                var s = "width" === t ? 1 : 0,
                    o = 0,
                    l = 0;
                if (i === (n ? "border" : "content")) return 0;
                for (; s < 4; s += 2) "margin" === i && (l += S.css(e, i + re[s], !0, a)), n ? ("content" === i && (l -= S.css(e, "padding" + re[s], !0, a)), "margin" !== i && (l -= S.css(e, "border" + re[s] + "Width", !0, a))) : (l += S.css(e, "padding" + re[s], !0, a), "padding" !== i ? l += S.css(e, "border" + re[s] + "Width", !0, a) : o += S.css(e, "border" + re[s] + "Width", !0, a));
                return !n && r >= 0 && (l += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - r - l - o - .5)) || 0), l
            }

            function at(e, t, i) {
                var n = Fe(e),
                    a = (!v.boxSizingReliable() || i) && "border-box" === S.css(e, "boxSizing", !1, n),
                    r = a,
                    s = Ye(e, t, n),
                    o = "offset" + t[0].toUpperCase() + t.slice(1);
                if (Xe.test(s)) {
                    if (!i) return s;
                    s = "auto"
                }
                return (!v.boxSizingReliable() && a || "auto" === s || !parseFloat(s) && "inline" === S.css(e, "display", !1, n)) && e.getClientRects().length && (a = "border-box" === S.css(e, "boxSizing", !1, n), (r = o in e) && (s = e[o])), (s = parseFloat(s) || 0) + nt(e, t, i || (a ? "border" : "content"), r, n, s) + "px"
            }

            function rt(e, t, i, n, a) { return new rt.prototype.init(e, t, i, n, a) }
            S.extend({
                cssHooks: { opacity: { get: function(e, t) { if (t) { var i = Ye(e, "opacity"); return "" === i ? "1" : i } } } },
                cssNumber: { animationIterationCount: !0, columnCount: !0, fillOpacity: !0, flexGrow: !0, flexShrink: !0, fontWeight: !0, gridArea: !0, gridColumn: !0, gridColumnEnd: !0, gridColumnStart: !0, gridRow: !0, gridRowEnd: !0, gridRowStart: !0, lineHeight: !0, opacity: !0, order: !0, orphans: !0, widows: !0, zIndex: !0, zoom: !0 },
                cssProps: {},
                style: function(e, t, i, n) {
                    if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
                        var a, r, s, o = K(t),
                            l = Ze.test(t),
                            d = e.style;
                        if (l || (t = Qe(o)), s = S.cssHooks[t] || S.cssHooks[o], void 0 === i) return s && "get" in s && void 0 !== (a = s.get(e, !1, n)) ? a : d[t];
                        "string" === (r = typeof i) && (a = ae.exec(i)) && a[1] && (i = ue(e, t, a), r = "number"), null != i && i == i && ("number" !== r || l || (i += a && a[3] || (S.cssNumber[o] ? "" : "px")), v.clearCloneStyle || "" !== i || 0 !== t.indexOf("background") || (d[t] = "inherit"), s && "set" in s && void 0 === (i = s.set(e, i, n)) || (l ? d.setProperty(t, i) : d[t] = i))
                    }
                },
                css: function(e, t, i, n) { var a, r, s, o = K(t); return Ze.test(t) || (t = Qe(o)), (s = S.cssHooks[t] || S.cssHooks[o]) && "get" in s && (a = s.get(e, !0, i)), void 0 === a && (a = Ye(e, t, n)), "normal" === a && t in tt && (a = tt[t]), "" === i || i ? (r = parseFloat(a), !0 === i || isFinite(r) ? r || 0 : a) : a }
            }), S.each(["height", "width"], function(e, t) {
                S.cssHooks[t] = {
                    get: function(e, i, n) { if (i) return !_e.test(S.css(e, "display")) || e.getClientRects().length && e.getBoundingClientRect().width ? at(e, t, n) : ce(e, et, function() { return at(e, t, n) }) },
                    set: function(e, i, n) {
                        var a, r = Fe(e),
                            s = !v.scrollboxSize() && "absolute" === r.position,
                            o = (s || n) && "border-box" === S.css(e, "boxSizing", !1, r),
                            l = n ? nt(e, t, n, o, r) : 0;
                        return o && s && (l -= Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - parseFloat(r[t]) - nt(e, t, "border", !1, r) - .5)), l && (a = ae.exec(i)) && "px" !== (a[3] || "px") && (e.style[t] = i, i = S.css(e, t)), it(0, i, l)
                    }
                }
            }), S.cssHooks.marginLeft = We(v.reliableMarginLeft, function(e, t) { if (t) return (parseFloat(Ye(e, "marginLeft")) || e.getBoundingClientRect().left - ce(e, { marginLeft: 0 }, function() { return e.getBoundingClientRect().left })) + "px" }), S.each({ margin: "", padding: "", border: "Width" }, function(e, t) { S.cssHooks[e + t] = { expand: function(i) { for (var n = 0, a = {}, r = "string" == typeof i ? i.split(" ") : [i]; n < 4; n++) a[e + re[n] + t] = r[n] || r[n - 2] || r[0]; return a } }, "margin" !== e && (S.cssHooks[e + t].set = it) }), S.fn.extend({
                css: function(e, t) {
                    return q(this, function(e, t, i) {
                        var n, a, r = {},
                            s = 0;
                        if (Array.isArray(t)) { for (n = Fe(e), a = t.length; s < a; s++) r[t[s]] = S.css(e, t[s], !1, n); return r }
                        return void 0 !== i ? S.style(e, t, i) : S.css(e, t)
                    }, e, t, arguments.length > 1)
                }
            }), S.Tween = rt, rt.prototype = { constructor: rt, init: function(e, t, i, n, a, r) { this.elem = e, this.prop = i, this.easing = a || S.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = n, this.unit = r || (S.cssNumber[i] ? "" : "px") }, cur: function() { var e = rt.propHooks[this.prop]; return e && e.get ? e.get(this) : rt.propHooks._default.get(this) }, run: function(e) { var t, i = rt.propHooks[this.prop]; return this.options.duration ? this.pos = t = S.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), i && i.set ? i.set(this) : rt.propHooks._default.set(this), this } }, rt.prototype.init.prototype = rt.prototype, rt.propHooks = { _default: { get: function(e) { var t; return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop] ? e.elem[e.prop] : (t = S.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0 }, set: function(e) { S.fx.step[e.prop] ? S.fx.step[e.prop](e) : 1 !== e.elem.nodeType || !S.cssHooks[e.prop] && null == e.elem.style[Qe(e.prop)] ? e.elem[e.prop] = e.now : S.style(e.elem, e.prop, e.now + e.unit) } } }, rt.propHooks.scrollTop = rt.propHooks.scrollLeft = { set: function(e) { e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now) } }, S.easing = { linear: function(e) { return e }, swing: function(e) { return .5 - Math.cos(e * Math.PI) / 2 }, _default: "swing" }, S.fx = rt.prototype.init, S.fx.step = {};
            var st, ot, lt = /^(?:toggle|show|hide)$/,
                dt = /queueHooks$/;

            function ct() { ot && (!1 === s.hidden && i.requestAnimationFrame ? i.requestAnimationFrame(ct) : i.setTimeout(ct, S.fx.interval), S.fx.tick()) }

            function ut() { return i.setTimeout(function() { st = void 0 }), st = Date.now() }

            function pt(e, t) {
                var i, n = 0,
                    a = { height: e };
                for (t = t ? 1 : 0; n < 4; n += 2 - t) a["margin" + (i = re[n])] = a["padding" + i] = e;
                return t && (a.opacity = a.width = e), a
            }

            function ht(e, t, i) {
                for (var n, a = (ft.tweeners[t] || []).concat(ft.tweeners["*"]), r = 0, s = a.length; r < s; r++)
                    if (n = a[r].call(i, t, e)) return n
            }

            function ft(e, t, i) {
                var n, a, r = 0,
                    s = ft.prefilters.length,
                    o = S.Deferred().always(function() { delete l.elem }),
                    l = function() { if (a) return !1; for (var t = st || ut(), i = Math.max(0, d.startTime + d.duration - t), n = 1 - (i / d.duration || 0), r = 0, s = d.tweens.length; r < s; r++) d.tweens[r].run(n); return o.notifyWith(e, [d, n, i]), n < 1 && s ? i : (s || o.notifyWith(e, [d, 1, 0]), o.resolveWith(e, [d]), !1) },
                    d = o.promise({
                        elem: e,
                        props: S.extend({}, t),
                        opts: S.extend(!0, { specialEasing: {}, easing: S.easing._default }, i),
                        originalProperties: t,
                        originalOptions: i,
                        startTime: st || ut(),
                        duration: i.duration,
                        tweens: [],
                        createTween: function(t, i) { var n = S.Tween(e, d.opts, t, i, d.opts.specialEasing[t] || d.opts.easing); return d.tweens.push(n), n },
                        stop: function(t) {
                            var i = 0,
                                n = t ? d.tweens.length : 0;
                            if (a) return this;
                            for (a = !0; i < n; i++) d.tweens[i].run(1);
                            return t ? (o.notifyWith(e, [d, 1, 0]), o.resolveWith(e, [d, t])) : o.rejectWith(e, [d, t]), this
                        }
                    }),
                    c = d.props;
                for (! function(e, t) {
                        var i, n, a, r, s;
                        for (i in e)
                            if (a = t[n = K(i)], r = e[i], Array.isArray(r) && (a = r[1], r = e[i] = r[0]), i !== n && (e[n] = r, delete e[i]), (s = S.cssHooks[n]) && "expand" in s)
                                for (i in r = s.expand(r), delete e[n], r) i in e || (e[i] = r[i], t[i] = a);
                            else t[n] = a
                    }(c, d.opts.specialEasing); r < s; r++)
                    if (n = ft.prefilters[r].call(d, e, c, d.opts)) return y(n.stop) && (S._queueHooks(d.elem, d.opts.queue).stop = n.stop.bind(n)), n;
                return S.map(c, ht, d), y(d.opts.start) && d.opts.start.call(e, d), d.progress(d.opts.progress).done(d.opts.done, d.opts.complete).fail(d.opts.fail).always(d.opts.always), S.fx.timer(S.extend(l, { elem: e, anim: d, queue: d.opts.queue })), d
            }
            S.Animation = S.extend(ft, {
                    tweeners: { "*": [function(e, t) { var i = this.createTween(e, t); return ue(i.elem, e, ae.exec(t), i), i }] },
                    tweener: function(e, t) { y(e) ? (t = e, e = ["*"]) : e = e.match(R); for (var i, n = 0, a = e.length; n < a; n++) i = e[n], ft.tweeners[i] = ft.tweeners[i] || [], ft.tweeners[i].unshift(t) },
                    prefilters: [function(e, t, i) {
                        var n, a, r, s, o, l, d, c, u = "width" in t || "height" in t,
                            p = this,
                            h = {},
                            f = e.style,
                            m = e.nodeType && de(e),
                            g = _.get(e, "fxshow");
                        for (n in i.queue || (null == (s = S._queueHooks(e, "fx")).unqueued && (s.unqueued = 0, o = s.empty.fire, s.empty.fire = function() { s.unqueued || o() }), s.unqueued++, p.always(function() { p.always(function() { s.unqueued--, S.queue(e, "fx").length || s.empty.fire() }) })), t)
                            if (a = t[n], lt.test(a)) {
                                if (delete t[n], r = r || "toggle" === a, a === (m ? "hide" : "show")) {
                                    if ("show" !== a || !g || void 0 === g[n]) continue;
                                    m = !0
                                }
                                h[n] = g && g[n] || S.style(e, n)
                            }
                        if ((l = !S.isEmptyObject(t)) || !S.isEmptyObject(h))
                            for (n in u && 1 === e.nodeType && (i.overflow = [f.overflow, f.overflowX, f.overflowY], null == (d = g && g.display) && (d = _.get(e, "display")), "none" === (c = S.css(e, "display")) && (d ? c = d : (fe([e], !0), d = e.style.display || d, c = S.css(e, "display"), fe([e]))), ("inline" === c || "inline-block" === c && null != d) && "none" === S.css(e, "float") && (l || (p.done(function() { f.display = d }), null == d && (c = f.display, d = "none" === c ? "" : c)), f.display = "inline-block")), i.overflow && (f.overflow = "hidden", p.always(function() { f.overflow = i.overflow[0], f.overflowX = i.overflow[1], f.overflowY = i.overflow[2] })), l = !1, h) l || (g ? "hidden" in g && (m = g.hidden) : g = _.access(e, "fxshow", { display: d }), r && (g.hidden = !m), m && fe([e], !0), p.done(function() { for (n in m || fe([e]), _.remove(e, "fxshow"), h) S.style(e, n, h[n]) })), l = ht(m ? g[n] : 0, n, p), n in g || (g[n] = l.start, m && (l.end = l.start, l.start = 0))
                    }],
                    prefilter: function(e, t) { t ? ft.prefilters.unshift(e) : ft.prefilters.push(e) }
                }), S.speed = function(e, t, i) { var n = e && "object" == typeof e ? S.extend({}, e) : { complete: i || !i && t || y(e) && e, duration: e, easing: i && t || t && !y(t) && t }; return S.fx.off ? n.duration = 0 : "number" != typeof n.duration && (n.duration in S.fx.speeds ? n.duration = S.fx.speeds[n.duration] : n.duration = S.fx.speeds._default), null != n.queue && !0 !== n.queue || (n.queue = "fx"), n.old = n.complete, n.complete = function() { y(n.old) && n.old.call(this), n.queue && S.dequeue(this, n.queue) }, n }, S.fn.extend({
                    fadeTo: function(e, t, i, n) { return this.filter(de).css("opacity", 0).show().end().animate({ opacity: t }, e, i, n) },
                    animate: function(e, t, i, n) {
                        var a = S.isEmptyObject(e),
                            r = S.speed(t, i, n),
                            s = function() {
                                var t = ft(this, S.extend({}, e), r);
                                (a || _.get(this, "finish")) && t.stop(!0)
                            };
                        return s.finish = s, a || !1 === r.queue ? this.each(s) : this.queue(r.queue, s)
                    },
                    stop: function(e, t, i) {
                        var n = function(e) {
                            var t = e.stop;
                            delete e.stop, t(i)
                        };
                        return "string" != typeof e && (i = t, t = e, e = void 0), t && !1 !== e && this.queue(e || "fx", []), this.each(function() {
                            var t = !0,
                                a = null != e && e + "queueHooks",
                                r = S.timers,
                                s = _.get(this);
                            if (a) s[a] && s[a].stop && n(s[a]);
                            else
                                for (a in s) s[a] && s[a].stop && dt.test(a) && n(s[a]);
                            for (a = r.length; a--;) r[a].elem !== this || null != e && r[a].queue !== e || (r[a].anim.stop(i), t = !1, r.splice(a, 1));
                            !t && i || S.dequeue(this, e)
                        })
                    },
                    finish: function(e) {
                        return !1 !== e && (e = e || "fx"), this.each(function() {
                            var t, i = _.get(this),
                                n = i[e + "queue"],
                                a = i[e + "queueHooks"],
                                r = S.timers,
                                s = n ? n.length : 0;
                            for (i.finish = !0, S.queue(this, e, []), a && a.stop && a.stop.call(this, !0), t = r.length; t--;) r[t].elem === this && r[t].queue === e && (r[t].anim.stop(!0), r.splice(t, 1));
                            for (t = 0; t < s; t++) n[t] && n[t].finish && n[t].finish.call(this);
                            delete i.finish
                        })
                    }
                }), S.each(["toggle", "show", "hide"], function(e, t) {
                    var i = S.fn[t];
                    S.fn[t] = function(e, n, a) { return null == e || "boolean" == typeof e ? i.apply(this, arguments) : this.animate(pt(t, !0), e, n, a) }
                }), S.each({ slideDown: pt("show"), slideUp: pt("hide"), slideToggle: pt("toggle"), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle" } }, function(e, t) { S.fn[e] = function(e, i, n) { return this.animate(t, e, i, n) } }), S.timers = [], S.fx.tick = function() {
                    var e, t = 0,
                        i = S.timers;
                    for (st = Date.now(); t < i.length; t++)(e = i[t])() || i[t] !== e || i.splice(t--, 1);
                    i.length || S.fx.stop(), st = void 0
                }, S.fx.timer = function(e) { S.timers.push(e), S.fx.start() }, S.fx.interval = 13, S.fx.start = function() { ot || (ot = !0, ct()) }, S.fx.stop = function() { ot = null }, S.fx.speeds = { slow: 600, fast: 200, _default: 400 }, S.fn.delay = function(e, t) {
                    return e = S.fx && S.fx.speeds[e] || e, t = t || "fx", this.queue(t, function(t, n) {
                        var a = i.setTimeout(t, e);
                        n.stop = function() { i.clearTimeout(a) }
                    })
                },
                function() {
                    var e = s.createElement("input"),
                        t = s.createElement("select").appendChild(s.createElement("option"));
                    e.type = "checkbox", v.checkOn = "" !== e.value, v.optSelected = t.selected, (e = s.createElement("input")).value = "t", e.type = "radio", v.radioValue = "t" === e.value
                }();
            var mt, gt = S.expr.attrHandle;
            S.fn.extend({ attr: function(e, t) { return q(this, S.attr, e, t, arguments.length > 1) }, removeAttr: function(e) { return this.each(function() { S.removeAttr(this, e) }) } }), S.extend({
                attr: function(e, t, i) { var n, a, r = e.nodeType; if (3 !== r && 8 !== r && 2 !== r) return void 0 === e.getAttribute ? S.prop(e, t, i) : (1 === r && S.isXMLDoc(e) || (a = S.attrHooks[t.toLowerCase()] || (S.expr.match.bool.test(t) ? mt : void 0)), void 0 !== i ? null === i ? void S.removeAttr(e, t) : a && "set" in a && void 0 !== (n = a.set(e, i, t)) ? n : (e.setAttribute(t, i + ""), i) : a && "get" in a && null !== (n = a.get(e, t)) ? n : null == (n = S.find.attr(e, t)) ? void 0 : n) },
                attrHooks: { type: { set: function(e, t) { if (!v.radioValue && "radio" === t && z(e, "input")) { var i = e.value; return e.setAttribute("type", t), i && (e.value = i), t } } } },
                removeAttr: function(e, t) {
                    var i, n = 0,
                        a = t && t.match(R);
                    if (a && 1 === e.nodeType)
                        for (; i = a[n++];) e.removeAttribute(i)
                }
            }), mt = { set: function(e, t, i) { return !1 === t ? S.removeAttr(e, i) : e.setAttribute(i, i), i } }, S.each(S.expr.match.bool.source.match(/\w+/g), function(e, t) {
                var i = gt[t] || S.find.attr;
                gt[t] = function(e, t, n) { var a, r, s = t.toLowerCase(); return n || (r = gt[s], gt[s] = a, a = null != i(e, t, n) ? s : null, gt[s] = r), a }
            });
            var vt = /^(?:input|select|textarea|button)$/i,
                yt = /^(?:a|area)$/i;

            function wt(e) { return (e.match(R) || []).join(" ") }

            function bt(e) { return e.getAttribute && e.getAttribute("class") || "" }

            function xt(e) { return Array.isArray(e) ? e : "string" == typeof e && e.match(R) || [] }
            S.fn.extend({ prop: function(e, t) { return q(this, S.prop, e, t, arguments.length > 1) }, removeProp: function(e) { return this.each(function() { delete this[S.propFix[e] || e] }) } }), S.extend({ prop: function(e, t, i) { var n, a, r = e.nodeType; if (3 !== r && 8 !== r && 2 !== r) return 1 === r && S.isXMLDoc(e) || (t = S.propFix[t] || t, a = S.propHooks[t]), void 0 !== i ? a && "set" in a && void 0 !== (n = a.set(e, i, t)) ? n : e[t] = i : a && "get" in a && null !== (n = a.get(e, t)) ? n : e[t] }, propHooks: { tabIndex: { get: function(e) { var t = S.find.attr(e, "tabindex"); return t ? parseInt(t, 10) : vt.test(e.nodeName) || yt.test(e.nodeName) && e.href ? 0 : -1 } } }, propFix: { for: "htmlFor", class: "className" } }), v.optSelected || (S.propHooks.selected = {
                get: function(e) { var t = e.parentNode; return t && t.parentNode && t.parentNode.selectedIndex, null },
                set: function(e) {
                    var t = e.parentNode;
                    t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex)
                }
            }), S.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() { S.propFix[this.toLowerCase()] = this }), S.fn.extend({
                addClass: function(e) {
                    var t, i, n, a, r, s, o, l = 0;
                    if (y(e)) return this.each(function(t) { S(this).addClass(e.call(this, t, bt(this))) });
                    if ((t = xt(e)).length)
                        for (; i = this[l++];)
                            if (a = bt(i), n = 1 === i.nodeType && " " + wt(a) + " ") {
                                for (s = 0; r = t[s++];) n.indexOf(" " + r + " ") < 0 && (n += r + " ");
                                a !== (o = wt(n)) && i.setAttribute("class", o)
                            }
                    return this
                },
                removeClass: function(e) {
                    var t, i, n, a, r, s, o, l = 0;
                    if (y(e)) return this.each(function(t) { S(this).removeClass(e.call(this, t, bt(this))) });
                    if (!arguments.length) return this.attr("class", "");
                    if ((t = xt(e)).length)
                        for (; i = this[l++];)
                            if (a = bt(i), n = 1 === i.nodeType && " " + wt(a) + " ") {
                                for (s = 0; r = t[s++];)
                                    for (; n.indexOf(" " + r + " ") > -1;) n = n.replace(" " + r + " ", " ");
                                a !== (o = wt(n)) && i.setAttribute("class", o)
                            }
                    return this
                },
                toggleClass: function(e, t) {
                    var i = typeof e,
                        n = "string" === i || Array.isArray(e);
                    return "boolean" == typeof t && n ? t ? this.addClass(e) : this.removeClass(e) : y(e) ? this.each(function(i) { S(this).toggleClass(e.call(this, i, bt(this), t), t) }) : this.each(function() {
                        var t, a, r, s;
                        if (n)
                            for (a = 0, r = S(this), s = xt(e); t = s[a++];) r.hasClass(t) ? r.removeClass(t) : r.addClass(t);
                        else void 0 !== e && "boolean" !== i || ((t = bt(this)) && _.set(this, "__className__", t), this.setAttribute && this.setAttribute("class", t || !1 === e ? "" : _.get(this, "__className__") || ""))
                    })
                },
                hasClass: function(e) {
                    var t, i, n = 0;
                    for (t = " " + e + " "; i = this[n++];)
                        if (1 === i.nodeType && (" " + wt(bt(i)) + " ").indexOf(t) > -1) return !0;
                    return !1
                }
            });
            var Tt = /\r/g;
            S.fn.extend({
                val: function(e) {
                    var t, i, n, a = this[0];
                    return arguments.length ? (n = y(e), this.each(function(i) {
                        var a;
                        1 === this.nodeType && (null == (a = n ? e.call(this, i, S(this).val()) : e) ? a = "" : "number" == typeof a ? a += "" : Array.isArray(a) && (a = S.map(a, function(e) { return null == e ? "" : e + "" })), (t = S.valHooks[this.type] || S.valHooks[this.nodeName.toLowerCase()]) && "set" in t && void 0 !== t.set(this, a, "value") || (this.value = a))
                    })) : a ? (t = S.valHooks[a.type] || S.valHooks[a.nodeName.toLowerCase()]) && "get" in t && void 0 !== (i = t.get(a, "value")) ? i : "string" == typeof(i = a.value) ? i.replace(Tt, "") : null == i ? "" : i : void 0
                }
            }), S.extend({
                valHooks: {
                    option: { get: function(e) { var t = S.find.attr(e, "value"); return null != t ? t : wt(S.text(e)) } },
                    select: {
                        get: function(e) {
                            var t, i, n, a = e.options,
                                r = e.selectedIndex,
                                s = "select-one" === e.type,
                                o = s ? null : [],
                                l = s ? r + 1 : a.length;
                            for (n = r < 0 ? l : s ? r : 0; n < l; n++)
                                if (((i = a[n]).selected || n === r) && !i.disabled && (!i.parentNode.disabled || !z(i.parentNode, "optgroup"))) {
                                    if (t = S(i).val(), s) return t;
                                    o.push(t)
                                }
                            return o
                        },
                        set: function(e, t) { for (var i, n, a = e.options, r = S.makeArray(t), s = a.length; s--;)((n = a[s]).selected = S.inArray(S.valHooks.option.get(n), r) > -1) && (i = !0); return i || (e.selectedIndex = -1), r }
                    }
                }
            }), S.each(["radio", "checkbox"], function() { S.valHooks[this] = { set: function(e, t) { if (Array.isArray(t)) return e.checked = S.inArray(S(e).val(), t) > -1 } }, v.checkOn || (S.valHooks[this].get = function(e) { return null === e.getAttribute("value") ? "on" : e.value }) }), v.focusin = "onfocusin" in i;
            var St = /^(?:focusinfocus|focusoutblur)$/,
                Ct = function(e) { e.stopPropagation() };
            S.extend(S.event, {
                trigger: function(e, t, n, a) {
                    var r, o, l, d, c, u, p, h, m = [n || s],
                        g = f.call(e, "type") ? e.type : e,
                        v = f.call(e, "namespace") ? e.namespace.split(".") : [];
                    if (o = h = l = n = n || s, 3 !== n.nodeType && 8 !== n.nodeType && !St.test(g + S.event.triggered) && (g.indexOf(".") > -1 && (g = (v = g.split(".")).shift(), v.sort()), c = g.indexOf(":") < 0 && "on" + g, (e = e[S.expando] ? e : new S.Event(g, "object" == typeof e && e)).isTrigger = a ? 2 : 3, e.namespace = v.join("."), e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + v.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, e.result = void 0, e.target || (e.target = n), t = null == t ? [e] : S.makeArray(t, [e]), p = S.event.special[g] || {}, a || !p.trigger || !1 !== p.trigger.apply(n, t))) {
                        if (!a && !p.noBubble && !w(n)) {
                            for (d = p.delegateType || g, St.test(d + g) || (o = o.parentNode); o; o = o.parentNode) m.push(o), l = o;
                            l === (n.ownerDocument || s) && m.push(l.defaultView || l.parentWindow || i)
                        }
                        for (r = 0;
                            (o = m[r++]) && !e.isPropagationStopped();) h = o, e.type = r > 1 ? d : p.bindType || g, (u = (_.get(o, "events") || {})[e.type] && _.get(o, "handle")) && u.apply(o, t), (u = c && o[c]) && u.apply && J(o) && (e.result = u.apply(o, t), !1 === e.result && e.preventDefault());
                        return e.type = g, a || e.isDefaultPrevented() || p._default && !1 !== p._default.apply(m.pop(), t) || !J(n) || c && y(n[g]) && !w(n) && ((l = n[c]) && (n[c] = null), S.event.triggered = g, e.isPropagationStopped() && h.addEventListener(g, Ct), n[g](), e.isPropagationStopped() && h.removeEventListener(g, Ct), S.event.triggered = void 0, l && (n[c] = l)), e.result
                    }
                },
                simulate: function(e, t, i) {
                    var n = S.extend(new S.Event, i, { type: e, isSimulated: !0 });
                    S.event.trigger(n, null, t)
                }
            }), S.fn.extend({ trigger: function(e, t) { return this.each(function() { S.event.trigger(e, t, this) }) }, triggerHandler: function(e, t) { var i = this[0]; if (i) return S.event.trigger(e, t, i, !0) } }), v.focusin || S.each({ focus: "focusin", blur: "focusout" }, function(e, t) {
                var i = function(e) { S.event.simulate(t, e.target, S.event.fix(e)) };
                S.event.special[t] = {
                    setup: function() {
                        var n = this.ownerDocument || this,
                            a = _.access(n, t);
                        a || n.addEventListener(e, i, !0), _.access(n, t, (a || 0) + 1)
                    },
                    teardown: function() {
                        var n = this.ownerDocument || this,
                            a = _.access(n, t) - 1;
                        a ? _.access(n, t, a) : (n.removeEventListener(e, i, !0), _.remove(n, t))
                    }
                }
            });
            var Et = i.location,
                At = Date.now(),
                Mt = /\?/;
            S.parseXML = function(e) { var t; if (!e || "string" != typeof e) return null; try { t = (new i.DOMParser).parseFromString(e, "text/xml") } catch (e) { t = void 0 } return t && !t.getElementsByTagName("parsererror").length || S.error("Invalid XML: " + e), t };
            var Pt = /\[\]$/,
                kt = /\r?\n/g,
                zt = /^(?:submit|button|image|reset|file)$/i,
                It = /^(?:input|select|textarea|keygen)/i;

            function Dt(e, t, i, n) {
                var a;
                if (Array.isArray(t)) S.each(t, function(t, a) { i || Pt.test(e) ? n(e, a) : Dt(e + "[" + ("object" == typeof a && null != a ? t : "") + "]", a, i, n) });
                else if (i || "object" !== T(t)) n(e, t);
                else
                    for (a in t) Dt(e + "[" + a + "]", t[a], i, n)
            }
            S.param = function(e, t) {
                var i, n = [],
                    a = function(e, t) {
                        var i = y(t) ? t() : t;
                        n[n.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == i ? "" : i)
                    };
                if (null == e) return "";
                if (Array.isArray(e) || e.jquery && !S.isPlainObject(e)) S.each(e, function() { a(this.name, this.value) });
                else
                    for (i in e) Dt(i, e[i], t, a);
                return n.join("&")
            }, S.fn.extend({ serialize: function() { return S.param(this.serializeArray()) }, serializeArray: function() { return this.map(function() { var e = S.prop(this, "elements"); return e ? S.makeArray(e) : this }).filter(function() { var e = this.type; return this.name && !S(this).is(":disabled") && It.test(this.nodeName) && !zt.test(e) && (this.checked || !me.test(e)) }).map(function(e, t) { var i = S(this).val(); return null == i ? null : Array.isArray(i) ? S.map(i, function(e) { return { name: t.name, value: e.replace(kt, "\r\n") } }) : { name: t.name, value: i.replace(kt, "\r\n") } }).get() } });
            var Lt = /%20/g,
                Bt = /#.*$/,
                Nt = /([?&])_=[^&]*/,
                Ot = /^(.*?):[ \t]*([^\r\n]*)$/gm,
                Ht = /^(?:GET|HEAD)$/,
                Rt = /^\/\//,
                $t = {},
                Gt = {},
                jt = "*/".concat("*"),
                Vt = s.createElement("a");

            function Xt(e) {
                return function(t, i) {
                    "string" != typeof t && (i = t, t = "*");
                    var n, a = 0,
                        r = t.toLowerCase().match(R) || [];
                    if (y(i))
                        for (; n = r[a++];) "+" === n[0] ? (n = n.slice(1) || "*", (e[n] = e[n] || []).unshift(i)) : (e[n] = e[n] || []).push(i)
                }
            }

            function Ft(e, t, i, n) {
                var a = {},
                    r = e === Gt;

                function s(o) { var l; return a[o] = !0, S.each(e[o] || [], function(e, o) { var d = o(t, i, n); return "string" != typeof d || r || a[d] ? r ? !(l = d) : void 0 : (t.dataTypes.unshift(d), s(d), !1) }), l }
                return s(t.dataTypes[0]) || !a["*"] && s("*")
            }

            function qt(e, t) { var i, n, a = S.ajaxSettings.flatOptions || {}; for (i in t) void 0 !== t[i] && ((a[i] ? e : n || (n = {}))[i] = t[i]); return n && S.extend(!0, e, n), e }
            Vt.href = Et.href, S.extend({
                active: 0,
                lastModified: {},
                etag: {},
                ajaxSettings: { url: Et.href, type: "GET", isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol), global: !0, processData: !0, async: !0, contentType: "application/x-www-form-urlencoded; charset=UTF-8", accepts: { "*": jt, text: "text/plain", html: "text/html", xml: "application/xml, text/xml", json: "application/json, text/javascript" }, contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ }, responseFields: { xml: "responseXML", text: "responseText", json: "responseJSON" }, converters: { "* text": String, "text html": !0, "text json": JSON.parse, "text xml": S.parseXML }, flatOptions: { url: !0, context: !0 } },
                ajaxSetup: function(e, t) { return t ? qt(qt(e, S.ajaxSettings), t) : qt(S.ajaxSettings, e) },
                ajaxPrefilter: Xt($t),
                ajaxTransport: Xt(Gt),
                ajax: function(e, t) {
                    "object" == typeof e && (t = e, e = void 0), t = t || {};
                    var n, a, r, o, l, d, c, u, p, h, f = S.ajaxSetup({}, t),
                        m = f.context || f,
                        g = f.context && (m.nodeType || m.jquery) ? S(m) : S.event,
                        v = S.Deferred(),
                        y = S.Callbacks("once memory"),
                        w = f.statusCode || {},
                        b = {},
                        x = {},
                        T = "canceled",
                        C = {
                            readyState: 0,
                            getResponseHeader: function(e) {
                                var t;
                                if (c) {
                                    if (!o)
                                        for (o = {}; t = Ot.exec(r);) o[t[1].toLowerCase() + " "] = (o[t[1].toLowerCase() + " "] || []).concat(t[2]);
                                    t = o[e.toLowerCase() + " "]
                                }
                                return null == t ? null : t.join(", ")
                            },
                            getAllResponseHeaders: function() { return c ? r : null },
                            setRequestHeader: function(e, t) { return null == c && (e = x[e.toLowerCase()] = x[e.toLowerCase()] || e, b[e] = t), this },
                            overrideMimeType: function(e) { return null == c && (f.mimeType = e), this },
                            statusCode: function(e) {
                                var t;
                                if (e)
                                    if (c) C.always(e[C.status]);
                                    else
                                        for (t in e) w[t] = [w[t], e[t]];
                                return this
                            },
                            abort: function(e) { var t = e || T; return n && n.abort(t), E(0, t), this }
                        };
                    if (v.promise(C), f.url = ((e || f.url || Et.href) + "").replace(Rt, Et.protocol + "//"), f.type = t.method || t.type || f.method || f.type, f.dataTypes = (f.dataType || "*").toLowerCase().match(R) || [""], null == f.crossDomain) { d = s.createElement("a"); try { d.href = f.url, d.href = d.href, f.crossDomain = Vt.protocol + "//" + Vt.host != d.protocol + "//" + d.host } catch (e) { f.crossDomain = !0 } }
                    if (f.data && f.processData && "string" != typeof f.data && (f.data = S.param(f.data, f.traditional)), Ft($t, f, t, C), c) return C;
                    for (p in (u = S.event && f.global) && 0 == S.active++ && S.event.trigger("ajaxStart"), f.type = f.type.toUpperCase(), f.hasContent = !Ht.test(f.type), a = f.url.replace(Bt, ""), f.hasContent ? f.data && f.processData && 0 === (f.contentType || "").indexOf("application/x-www-form-urlencoded") && (f.data = f.data.replace(Lt, "+")) : (h = f.url.slice(a.length), f.data && (f.processData || "string" == typeof f.data) && (a += (Mt.test(a) ? "&" : "?") + f.data, delete f.data), !1 === f.cache && (a = a.replace(Nt, "$1"), h = (Mt.test(a) ? "&" : "?") + "_=" + At++ + h), f.url = a + h), f.ifModified && (S.lastModified[a] && C.setRequestHeader("If-Modified-Since", S.lastModified[a]), S.etag[a] && C.setRequestHeader("If-None-Match", S.etag[a])), (f.data && f.hasContent && !1 !== f.contentType || t.contentType) && C.setRequestHeader("Content-Type", f.contentType), C.setRequestHeader("Accept", f.dataTypes[0] && f.accepts[f.dataTypes[0]] ? f.accepts[f.dataTypes[0]] + ("*" !== f.dataTypes[0] ? ", " + jt + "; q=0.01" : "") : f.accepts["*"]), f.headers) C.setRequestHeader(p, f.headers[p]);
                    if (f.beforeSend && (!1 === f.beforeSend.call(m, C, f) || c)) return C.abort();
                    if (T = "abort", y.add(f.complete), C.done(f.success), C.fail(f.error), n = Ft(Gt, f, t, C)) {
                        if (C.readyState = 1, u && g.trigger("ajaxSend", [C, f]), c) return C;
                        f.async && f.timeout > 0 && (l = i.setTimeout(function() { C.abort("timeout") }, f.timeout));
                        try { c = !1, n.send(b, E) } catch (e) {
                            if (c) throw e;
                            E(-1, e)
                        }
                    } else E(-1, "No Transport");

                    function E(e, t, s, o) {
                        var d, p, h, b, x, T = t;
                        c || (c = !0, l && i.clearTimeout(l), n = void 0, r = o || "", C.readyState = e > 0 ? 4 : 0, d = e >= 200 && e < 300 || 304 === e, s && (b = function(e, t, i) {
                            for (var n, a, r, s, o = e.contents, l = e.dataTypes;
                                "*" === l[0];) l.shift(), void 0 === n && (n = e.mimeType || t.getResponseHeader("Content-Type"));
                            if (n)
                                for (a in o)
                                    if (o[a] && o[a].test(n)) { l.unshift(a); break }
                            if (l[0] in i) r = l[0];
                            else {
                                for (a in i) {
                                    if (!l[0] || e.converters[a + " " + l[0]]) { r = a; break }
                                    s || (s = a)
                                }
                                r = r || s
                            }
                            if (r) return r !== l[0] && l.unshift(r), i[r]
                        }(f, C, s)), b = function(e, t, i, n) {
                            var a, r, s, o, l, d = {},
                                c = e.dataTypes.slice();
                            if (c[1])
                                for (s in e.converters) d[s.toLowerCase()] = e.converters[s];
                            for (r = c.shift(); r;)
                                if (e.responseFields[r] && (i[e.responseFields[r]] = t), !l && n && e.dataFilter && (t = e.dataFilter(t, e.dataType)), l = r, r = c.shift())
                                    if ("*" === r) r = l;
                                    else if ("*" !== l && l !== r) {
                                if (!(s = d[l + " " + r] || d["* " + r]))
                                    for (a in d)
                                        if ((o = a.split(" "))[1] === r && (s = d[l + " " + o[0]] || d["* " + o[0]])) {!0 === s ? s = d[a] : !0 !== d[a] && (r = o[0], c.unshift(o[1])); break }
                                if (!0 !== s)
                                    if (s && e.throws) t = s(t);
                                    else try { t = s(t) } catch (e) { return { state: "parsererror", error: s ? e : "No conversion from " + l + " to " + r } }
                            }
                            return { state: "success", data: t }
                        }(f, b, C, d), d ? (f.ifModified && ((x = C.getResponseHeader("Last-Modified")) && (S.lastModified[a] = x), (x = C.getResponseHeader("etag")) && (S.etag[a] = x)), 204 === e || "HEAD" === f.type ? T = "nocontent" : 304 === e ? T = "notmodified" : (T = b.state, p = b.data, d = !(h = b.error))) : (h = T, !e && T || (T = "error", e < 0 && (e = 0))), C.status = e, C.statusText = (t || T) + "", d ? v.resolveWith(m, [p, T, C]) : v.rejectWith(m, [C, T, h]), C.statusCode(w), w = void 0, u && g.trigger(d ? "ajaxSuccess" : "ajaxError", [C, f, d ? p : h]), y.fireWith(m, [C, T]), u && (g.trigger("ajaxComplete", [C, f]), --S.active || S.event.trigger("ajaxStop")))
                    }
                    return C
                },
                getJSON: function(e, t, i) { return S.get(e, t, i, "json") },
                getScript: function(e, t) { return S.get(e, void 0, t, "script") }
            }), S.each(["get", "post"], function(e, t) { S[t] = function(e, i, n, a) { return y(i) && (a = a || n, n = i, i = void 0), S.ajax(S.extend({ url: e, type: t, dataType: a, data: i, success: n }, S.isPlainObject(e) && e)) } }), S._evalUrl = function(e, t) { return S.ajax({ url: e, type: "GET", dataType: "script", cache: !0, async: !1, global: !1, converters: { "text script": function() {} }, dataFilter: function(e) { S.globalEval(e, t) } }) }, S.fn.extend({
                wrapAll: function(e) { var t; return this[0] && (y(e) && (e = e.call(this[0])), t = S(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map(function() { for (var e = this; e.firstElementChild;) e = e.firstElementChild; return e }).append(this)), this },
                wrapInner: function(e) {
                    return y(e) ? this.each(function(t) { S(this).wrapInner(e.call(this, t)) }) : this.each(function() {
                        var t = S(this),
                            i = t.contents();
                        i.length ? i.wrapAll(e) : t.append(e)
                    })
                },
                wrap: function(e) { var t = y(e); return this.each(function(i) { S(this).wrapAll(t ? e.call(this, i) : e) }) },
                unwrap: function(e) { return this.parent(e).not("body").each(function() { S(this).replaceWith(this.childNodes) }), this }
            }), S.expr.pseudos.hidden = function(e) { return !S.expr.pseudos.visible(e) }, S.expr.pseudos.visible = function(e) { return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length) }, S.ajaxSettings.xhr = function() { try { return new i.XMLHttpRequest } catch (e) {} };
            var Yt = { 0: 200, 1223: 204 },
                Wt = S.ajaxSettings.xhr();
            v.cors = !!Wt && "withCredentials" in Wt, v.ajax = Wt = !!Wt, S.ajaxTransport(function(e) {
                var t, n;
                if (v.cors || Wt && !e.crossDomain) return {
                    send: function(a, r) {
                        var s, o = e.xhr();
                        if (o.open(e.type, e.url, e.async, e.username, e.password), e.xhrFields)
                            for (s in e.xhrFields) o[s] = e.xhrFields[s];
                        for (s in e.mimeType && o.overrideMimeType && o.overrideMimeType(e.mimeType), e.crossDomain || a["X-Requested-With"] || (a["X-Requested-With"] = "XMLHttpRequest"), a) o.setRequestHeader(s, a[s]);
                        t = function(e) { return function() { t && (t = n = o.onload = o.onerror = o.onabort = o.ontimeout = o.onreadystatechange = null, "abort" === e ? o.abort() : "error" === e ? "number" != typeof o.status ? r(0, "error") : r(o.status, o.statusText) : r(Yt[o.status] || o.status, o.statusText, "text" !== (o.responseType || "text") || "string" != typeof o.responseText ? { binary: o.response } : { text: o.responseText }, o.getAllResponseHeaders())) } }, o.onload = t(), n = o.onerror = o.ontimeout = t("error"), void 0 !== o.onabort ? o.onabort = n : o.onreadystatechange = function() { 4 === o.readyState && i.setTimeout(function() { t && n() }) }, t = t("abort");
                        try { o.send(e.hasContent && e.data || null) } catch (e) { if (t) throw e }
                    },
                    abort: function() { t && t() }
                }
            }), S.ajaxPrefilter(function(e) { e.crossDomain && (e.contents.script = !1) }), S.ajaxSetup({ accepts: { script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" }, contents: { script: /\b(?:java|ecma)script\b/ }, converters: { "text script": function(e) { return S.globalEval(e), e } } }), S.ajaxPrefilter("script", function(e) { void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET") }), S.ajaxTransport("script", function(e) { var t, i; if (e.crossDomain || e.scriptAttrs) return { send: function(n, a) { t = S("<script>").attr(e.scriptAttrs || {}).prop({ charset: e.scriptCharset, src: e.url }).on("load error", i = function(e) { t.remove(), i = null, e && a("error" === e.type ? 404 : 200, e.type) }), s.head.appendChild(t[0]) }, abort: function() { i && i() } } });
            var Ut, Kt = [],
                Jt = /(=)\?(?=&|$)|\?\?/;
            S.ajaxSetup({ jsonp: "callback", jsonpCallback: function() { var e = Kt.pop() || S.expando + "_" + At++; return this[e] = !0, e } }), S.ajaxPrefilter("json jsonp", function(e, t, n) { var a, r, s, o = !1 !== e.jsonp && (Jt.test(e.url) ? "url" : "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && Jt.test(e.data) && "data"); if (o || "jsonp" === e.dataTypes[0]) return a = e.jsonpCallback = y(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback, o ? e[o] = e[o].replace(Jt, "$1" + a) : !1 !== e.jsonp && (e.url += (Mt.test(e.url) ? "&" : "?") + e.jsonp + "=" + a), e.converters["script json"] = function() { return s || S.error(a + " was not called"), s[0] }, e.dataTypes[0] = "json", r = i[a], i[a] = function() { s = arguments }, n.always(function() { void 0 === r ? S(i).removeProp(a) : i[a] = r, e[a] && (e.jsonpCallback = t.jsonpCallback, Kt.push(a)), s && y(r) && r(s[0]), s = r = void 0 }), "script" }), v.createHTMLDocument = ((Ut = s.implementation.createHTMLDocument("").body).innerHTML = "<form></form><form></form>", 2 === Ut.childNodes.length), S.parseHTML = function(e, t, i) { return "string" != typeof e ? [] : ("boolean" == typeof t && (i = t, t = !1), t || (v.createHTMLDocument ? ((n = (t = s.implementation.createHTMLDocument("")).createElement("base")).href = s.location.href, t.head.appendChild(n)) : t = s), a = I.exec(e), r = !i && [], a ? [t.createElement(a[1])] : (a = Ce([e], t, r), r && r.length && S(r).remove(), S.merge([], a.childNodes))); var n, a, r }, S.fn.load = function(e, t, i) {
                var n, a, r, s = this,
                    o = e.indexOf(" ");
                return o > -1 && (n = wt(e.slice(o)), e = e.slice(0, o)), y(t) ? (i = t, t = void 0) : t && "object" == typeof t && (a = "POST"), s.length > 0 && S.ajax({ url: e, type: a || "GET", dataType: "html", data: t }).done(function(e) { r = arguments, s.html(n ? S("<div>").append(S.parseHTML(e)).find(n) : e) }).always(i && function(e, t) { s.each(function() { i.apply(this, r || [e.responseText, t, e]) }) }), this
            }, S.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(e, t) { S.fn[t] = function(e) { return this.on(t, e) } }), S.expr.pseudos.animated = function(e) { return S.grep(S.timers, function(t) { return e === t.elem }).length }, S.offset = {
                setOffset: function(e, t, i) {
                    var n, a, r, s, o, l, d = S.css(e, "position"),
                        c = S(e),
                        u = {};
                    "static" === d && (e.style.position = "relative"), o = c.offset(), r = S.css(e, "top"), l = S.css(e, "left"), ("absolute" === d || "fixed" === d) && (r + l).indexOf("auto") > -1 ? (s = (n = c.position()).top, a = n.left) : (s = parseFloat(r) || 0, a = parseFloat(l) || 0), y(t) && (t = t.call(e, i, S.extend({}, o))), null != t.top && (u.top = t.top - o.top + s), null != t.left && (u.left = t.left - o.left + a), "using" in t ? t.using.call(e, u) : c.css(u)
                }
            }, S.fn.extend({
                offset: function(e) { if (arguments.length) return void 0 === e ? this : this.each(function(t) { S.offset.setOffset(this, e, t) }); var t, i, n = this[0]; return n ? n.getClientRects().length ? (t = n.getBoundingClientRect(), i = n.ownerDocument.defaultView, { top: t.top + i.pageYOffset, left: t.left + i.pageXOffset }) : { top: 0, left: 0 } : void 0 },
                position: function() {
                    if (this[0]) {
                        var e, t, i, n = this[0],
                            a = { top: 0, left: 0 };
                        if ("fixed" === S.css(n, "position")) t = n.getBoundingClientRect();
                        else {
                            for (t = this.offset(), i = n.ownerDocument, e = n.offsetParent || i.documentElement; e && (e === i.body || e === i.documentElement) && "static" === S.css(e, "position");) e = e.parentNode;
                            e && e !== n && 1 === e.nodeType && ((a = S(e).offset()).top += S.css(e, "borderTopWidth", !0), a.left += S.css(e, "borderLeftWidth", !0))
                        }
                        return { top: t.top - a.top - S.css(n, "marginTop", !0), left: t.left - a.left - S.css(n, "marginLeft", !0) }
                    }
                },
                offsetParent: function() { return this.map(function() { for (var e = this.offsetParent; e && "static" === S.css(e, "position");) e = e.offsetParent; return e || se }) }
            }), S.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function(e, t) {
                var i = "pageYOffset" === t;
                S.fn[e] = function(n) {
                    return q(this, function(e, n, a) {
                        var r;
                        if (w(e) ? r = e : 9 === e.nodeType && (r = e.defaultView), void 0 === a) return r ? r[t] : e[n];
                        r ? r.scrollTo(i ? r.pageXOffset : a, i ? a : r.pageYOffset) : e[n] = a
                    }, e, n, arguments.length)
                }
            }), S.each(["top", "left"], function(e, t) { S.cssHooks[t] = We(v.pixelPosition, function(e, i) { if (i) return i = Ye(e, t), Xe.test(i) ? S(e).position()[t] + "px" : i }) }), S.each({ Height: "height", Width: "width" }, function(e, t) {
                S.each({ padding: "inner" + e, content: t, "": "outer" + e }, function(i, n) {
                    S.fn[n] = function(a, r) {
                        var s = arguments.length && (i || "boolean" != typeof a),
                            o = i || (!0 === a || !0 === r ? "margin" : "border");
                        return q(this, function(t, i, a) { var r; return w(t) ? 0 === n.indexOf("outer") ? t["inner" + e] : t.document.documentElement["client" + e] : 9 === t.nodeType ? (r = t.documentElement, Math.max(t.body["scroll" + e], r["scroll" + e], t.body["offset" + e], r["offset" + e], r["client" + e])) : void 0 === a ? S.css(t, i, o) : S.style(t, i, a, o) }, t, s ? a : void 0, s)
                    }
                })
            }), S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), function(e, t) { S.fn[t] = function(e, i) { return arguments.length > 0 ? this.on(t, null, e, i) : this.trigger(t) } }), S.fn.extend({ hover: function(e, t) { return this.mouseenter(e).mouseleave(t || e) } }), S.fn.extend({ bind: function(e, t, i) { return this.on(e, null, t, i) }, unbind: function(e, t) { return this.off(e, null, t) }, delegate: function(e, t, i, n) { return this.on(t, e, i, n) }, undelegate: function(e, t, i) { return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", i) } }), S.proxy = function(e, t) { var i, n, a; if ("string" == typeof t && (i = e[t], t = e, e = i), y(e)) return n = l.call(arguments, 2), (a = function() { return e.apply(t || this, n.concat(l.call(arguments))) }).guid = e.guid = e.guid || S.guid++, a }, S.holdReady = function(e) { e ? S.readyWait++ : S.ready(!0) }, S.isArray = Array.isArray, S.parseJSON = JSON.parse, S.nodeName = z, S.isFunction = y, S.isWindow = w, S.camelCase = K, S.type = T, S.now = Date.now, S.isNumeric = function(e) { var t = S.type(e); return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e)) }, void 0 === (n = function() { return S }.apply(t, [])) || (e.exports = n);
            var Qt = i.jQuery,
                _t = i.$;
            return S.noConflict = function(e) { return i.$ === S && (i.$ = _t), e && i.jQuery === S && (i.jQuery = Qt), S }, a || (i.jQuery = i.$ = S), S
        })
    },
    "82Mu": function(e, t, i) {
        var n = i("7KvD"),
            a = i("L42u").set,
            r = n.MutationObserver || n.WebKitMutationObserver,
            s = n.process,
            o = n.Promise,
            l = "process" == i("R9M2")(s);
        e.exports = function() {
            var e, t, i, d = function() {
                var n, a;
                for (l && (n = s.domain) && n.exit(); e;) { a = e.fn, e = e.next; try { a() } catch (n) { throw e ? i() : t = void 0, n } }
                t = void 0, n && n.enter()
            };
            if (l) i = function() { s.nextTick(d) };
            else if (!r || n.navigator && n.navigator.standalone)
                if (o && o.resolve) {
                    var c = o.resolve(void 0);
                    i = function() { c.then(d) }
                } else i = function() { a.call(n, d) };
            else {
                var u = !0,
                    p = document.createTextNode("");
                new r(d).observe(p, { characterData: !0 }), i = function() { p.data = u = !u }
            }
            return function(n) {
                var a = { fn: n, next: void 0 };
                t && (t.next = a), e || (e = a, i()), t = a
            }
        }
    },
    "8T+7": function(e, t) { e.exports = "" },
    BaZ6: function(e, t, i) {
        var n = { "./ic1.png": "YzTf", "./ic10.png": "obDj", "./ic11.png": "KTvl", "./ic12.png": "8T+7", "./ic2.png": "MNkO", "./ic3.png": "PWzj", "./ic4.png": "uuU8", "./ic5.png": "kCm9", "./ic6.png": "FqXb", "./ic7.png": "xNxe", "./ic8.png": "civE", "./ic9.png": "qekx" };

        function a(e) { return i(r(e)) }

        function r(e) { var t = n[e]; if (!(t + 1)) throw new Error("Cannot find module '" + e + "'."); return t }
        a.keys = function() { return Object.keys(n) }, a.resolve = r, e.exports = a, a.id = "BaZ6"
    },
    BpKH: function(e, t) {},
    CXw9: function(e, t, i) {
        "use strict";
        var n, a, r, s, o = i("O4g8"),
            l = i("7KvD"),
            d = i("+ZMJ"),
            c = i("RY/4"),
            u = i("kM2E"),
            p = i("EqjI"),
            h = i("lOnJ"),
            f = i("2KxR"),
            m = i("NWt+"),
            g = i("t8x9"),
            v = i("L42u").set,
            y = i("82Mu")(),
            w = i("qARP"),
            b = i("dNDb"),
            x = i("iUbK"),
            T = i("fJUb"),
            S = l.TypeError,
            C = l.process,
            E = C && C.versions,
            A = E && E.v8 || "",
            M = l.Promise,
            P = "process" == c(C),
            k = function() {},
            z = a = w.f,
            I = !! function() {
                try {
                    var e = M.resolve(1),
                        t = (e.constructor = {})[i("dSzd")("species")] = function(e) { e(k, k) };
                    return (P || "function" == typeof PromiseRejectionEvent) && e.then(k) instanceof t && 0 !== A.indexOf("6.6") && -1 === x.indexOf("Chrome/66")
                } catch (e) {}
            }(),
            D = function(e) { var t; return !(!p(e) || "function" != typeof(t = e.then)) && t },
            L = function(e, t) {
                if (!e._n) {
                    e._n = !0;
                    var i = e._c;
                    y(function() {
                        for (var n = e._v, a = 1 == e._s, r = 0, s = function(t) {
                                var i, r, s, o = a ? t.ok : t.fail,
                                    l = t.resolve,
                                    d = t.reject,
                                    c = t.domain;
                                try { o ? (a || (2 == e._h && O(e), e._h = 1), !0 === o ? i = n : (c && c.enter(), i = o(n), c && (c.exit(), s = !0)), i === t.promise ? d(S("Promise-chain cycle")) : (r = D(i)) ? r.call(i, l, d) : l(i)) : d(n) } catch (e) { c && !s && c.exit(), d(e) }
                            }; i.length > r;) s(i[r++]);
                        e._c = [], e._n = !1, t && !e._h && B(e)
                    })
                }
            },
            B = function(e) {
                v.call(l, function() {
                    var t, i, n, a = e._v,
                        r = N(e);
                    if (r && (t = b(function() { P ? C.emit("unhandledRejection", a, e) : (i = l.onunhandledrejection) ? i({ promise: e, reason: a }) : (n = l.console) && n.error && n.error("Unhandled promise rejection", a) }), e._h = P || N(e) ? 2 : 1), e._a = void 0, r && t.e) throw t.v
                })
            },
            N = function(e) { return 1 !== e._h && 0 === (e._a || e._c).length },
            O = function(e) {
                v.call(l, function() {
                    var t;
                    P ? C.emit("rejectionHandled", e) : (t = l.onrejectionhandled) && t({ promise: e, reason: e._v })
                })
            },
            H = function(e) {
                var t = this;
                t._d || (t._d = !0, (t = t._w || t)._v = e, t._s = 2, t._a || (t._a = t._c.slice()), L(t, !0))
            },
            R = function(e) {
                var t, i = this;
                if (!i._d) {
                    i._d = !0, i = i._w || i;
                    try {
                        if (i === e) throw S("Promise can't be resolved itself");
                        (t = D(e)) ? y(function() { var n = { _w: i, _d: !1 }; try { t.call(e, d(R, n, 1), d(H, n, 1)) } catch (e) { H.call(n, e) } }): (i._v = e, i._s = 1, L(i, !1))
                    } catch (e) { H.call({ _w: i, _d: !1 }, e) }
                }
            };
        I || (M = function(e) { f(this, M, "Promise", "_h"), h(e), n.call(this); try { e(d(R, this, 1), d(H, this, 1)) } catch (e) { H.call(this, e) } }, (n = function(e) { this._c = [], this._a = void 0, this._s = 0, this._d = !1, this._v = void 0, this._h = 0, this._n = !1 }).prototype = i("xH/j")(M.prototype, { then: function(e, t) { var i = z(g(this, M)); return i.ok = "function" != typeof e || e, i.fail = "function" == typeof t && t, i.domain = P ? C.domain : void 0, this._c.push(i), this._a && this._a.push(i), this._s && L(this, !1), i.promise }, catch: function(e) { return this.then(void 0, e) } }), r = function() {
            var e = new n;
            this.promise = e, this.resolve = d(R, e, 1), this.reject = d(H, e, 1)
        }, w.f = z = function(e) { return e === M || e === s ? new r(e) : a(e) }), u(u.G + u.W + u.F * !I, { Promise: M }), i("e6n0")(M, "Promise"), i("bRrM")("Promise"), s = i("FeBl").Promise, u(u.S + u.F * !I, "Promise", { reject: function(e) { var t = z(this); return (0, t.reject)(e), t.promise } }), u(u.S + u.F * (o || !I), "Promise", { resolve: function(e) { return T(o && this === s ? M : this, e) } }), u(u.S + u.F * !(I && i("dY0y")(function(e) { M.all(e).catch(k) })), "Promise", {
            all: function(e) {
                var t = this,
                    i = z(t),
                    n = i.resolve,
                    a = i.reject,
                    r = b(function() {
                        var i = [],
                            r = 0,
                            s = 1;
                        m(e, !1, function(e) {
                            var o = r++,
                                l = !1;
                            i.push(void 0), s++, t.resolve(e).then(function(e) { l || (l = !0, i[o] = e, --s || n(i)) }, a)
                        }), --s || n(i)
                    });
                return r.e && a(r.v), i.promise
            },
            race: function(e) {
                var t = this,
                    i = z(t),
                    n = i.reject,
                    a = b(function() { m(e, !1, function(e) { t.resolve(e).then(i.resolve, n) }) });
                return a.e && n(a.v), i.promise
            }
        })
    },
    CwSZ: function(e, t, i) {
        "use strict";
        var n = i("p8xL"),
            a = i("XgCd"),
            r = Object.prototype.hasOwnProperty,
            s = { brackets: function(e) { return e + "[]" }, comma: "comma", indices: function(e, t) { return e + "[" + t + "]" }, repeat: function(e) { return e } },
            o = Array.isArray,
            l = Array.prototype.push,
            d = function(e, t) { l.apply(e, o(t) ? t : [t]) },
            c = Date.prototype.toISOString,
            u = { addQueryPrefix: !1, allowDots: !1, charset: "utf-8", charsetSentinel: !1, delimiter: "&", encode: !0, encoder: n.encode, encodeValuesOnly: !1, formatter: a.formatters[a.default], indices: !1, serializeDate: function(e) { return c.call(e) }, skipNulls: !1, strictNullHandling: !1 },
            p = function e(t, i, a, r, s, l, c, p, h, f, m, g, v) {
                var y = t;
                if ("function" == typeof c ? y = c(i, y) : y instanceof Date ? y = f(y) : "comma" === a && o(y) && (y = y.join(",")), null === y) {
                    if (r) return l && !g ? l(i, u.encoder, v) : i;
                    y = ""
                }
                if ("string" == typeof y || "number" == typeof y || "boolean" == typeof y || n.isBuffer(y)) return l ? [m(g ? i : l(i, u.encoder, v)) + "=" + m(l(y, u.encoder, v))] : [m(i) + "=" + m(String(y))];
                var w, b = [];
                if (void 0 === y) return b;
                if (o(c)) w = c;
                else {
                    var x = Object.keys(y);
                    w = p ? x.sort(p) : x
                }
                for (var T = 0; T < w.length; ++T) {
                    var S = w[T];
                    s && null === y[S] || (o(y) ? d(b, e(y[S], "function" == typeof a ? a(i, S) : i, a, r, s, l, c, p, h, f, m, g, v)) : d(b, e(y[S], i + (h ? "." + S : "[" + S + "]"), a, r, s, l, c, p, h, f, m, g, v)))
                }
                return b
            };
        e.exports = function(e, t) {
            var i, n = e,
                l = function(e) {
                    if (!e) return u;
                    if (null !== e.encoder && void 0 !== e.encoder && "function" != typeof e.encoder) throw new TypeError("Encoder has to be a function.");
                    var t = e.charset || u.charset;
                    if (void 0 !== e.charset && "utf-8" !== e.charset && "iso-8859-1" !== e.charset) throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");
                    var i = a.default;
                    if (void 0 !== e.format) {
                        if (!r.call(a.formatters, e.format)) throw new TypeError("Unknown format option provided.");
                        i = e.format
                    }
                    var n = a.formatters[i],
                        s = u.filter;
                    return ("function" == typeof e.filter || o(e.filter)) && (s = e.filter), { addQueryPrefix: "boolean" == typeof e.addQueryPrefix ? e.addQueryPrefix : u.addQueryPrefix, allowDots: void 0 === e.allowDots ? u.allowDots : !!e.allowDots, charset: t, charsetSentinel: "boolean" == typeof e.charsetSentinel ? e.charsetSentinel : u.charsetSentinel, delimiter: void 0 === e.delimiter ? u.delimiter : e.delimiter, encode: "boolean" == typeof e.encode ? e.encode : u.encode, encoder: "function" == typeof e.encoder ? e.encoder : u.encoder, encodeValuesOnly: "boolean" == typeof e.encodeValuesOnly ? e.encodeValuesOnly : u.encodeValuesOnly, filter: s, formatter: n, serializeDate: "function" == typeof e.serializeDate ? e.serializeDate : u.serializeDate, skipNulls: "boolean" == typeof e.skipNulls ? e.skipNulls : u.skipNulls, sort: "function" == typeof e.sort ? e.sort : null, strictNullHandling: "boolean" == typeof e.strictNullHandling ? e.strictNullHandling : u.strictNullHandling }
                }(t);
            "function" == typeof l.filter ? n = (0, l.filter)("", n) : o(l.filter) && (i = l.filter);
            var c, h = [];
            if ("object" != typeof n || null === n) return "";
            c = t && t.arrayFormat in s ? t.arrayFormat : t && "indices" in t ? t.indices ? "indices" : "repeat" : "indices";
            var f = s[c];
            i || (i = Object.keys(n)), l.sort && i.sort(l.sort);
            for (var m = 0; m < i.length; ++m) {
                var g = i[m];
                l.skipNulls && null === n[g] || d(h, p(n[g], g, f, l.strictNullHandling, l.skipNulls, l.encode ? l.encoder : null, l.filter, l.sort, l.allowDots, l.serializeDate, l.formatter, l.encodeValuesOnly, l.charset))
            }
            var v = h.join(l.delimiter),
                y = !0 === l.addQueryPrefix ? "?" : "";
            return l.charsetSentinel && ("iso-8859-1" === l.charset ? y += "utf8=%26%2310003%3B&" : y += "utf8=%E2%9C%93&"), v.length > 0 ? y + v : ""
        }
    },
    DDCP: function(e, t, i) {
        "use strict";
        var n = i("p8xL"),
            a = Object.prototype.hasOwnProperty,
            r = { allowDots: !1, allowPrototypes: !1, arrayLimit: 20, charset: "utf-8", charsetSentinel: !1, comma: !1, decoder: n.decode, delimiter: "&", depth: 5, ignoreQueryPrefix: !1, interpretNumericEntities: !1, parameterLimit: 1e3, parseArrays: !0, plainObjects: !1, strictNullHandling: !1 },
            s = function(e) { return e.replace(/&#(\d+);/g, function(e, t) { return String.fromCharCode(parseInt(t, 10)) }) },
            o = function(e, t, i) {
                if (e) {
                    var n = i.allowDots ? e.replace(/\.([^.[]+)/g, "[$1]") : e,
                        r = /(\[[^[\]]*])/g,
                        s = /(\[[^[\]]*])/.exec(n),
                        o = s ? n.slice(0, s.index) : n,
                        l = [];
                    if (o) {
                        if (!i.plainObjects && a.call(Object.prototype, o) && !i.allowPrototypes) return;
                        l.push(o)
                    }
                    for (var d = 0; null !== (s = r.exec(n)) && d < i.depth;) {
                        if (d += 1, !i.plainObjects && a.call(Object.prototype, s[1].slice(1, -1)) && !i.allowPrototypes) return;
                        l.push(s[1])
                    }
                    return s && l.push("[" + n.slice(s.index) + "]"),
                        function(e, t, i) {
                            for (var n = t, a = e.length - 1; a >= 0; --a) {
                                var r, s = e[a];
                                if ("[]" === s && i.parseArrays) r = [].concat(n);
                                else {
                                    r = i.plainObjects ? Object.create(null) : {};
                                    var o = "[" === s.charAt(0) && "]" === s.charAt(s.length - 1) ? s.slice(1, -1) : s,
                                        l = parseInt(o, 10);
                                    i.parseArrays || "" !== o ? !isNaN(l) && s !== o && String(l) === o && l >= 0 && i.parseArrays && l <= i.arrayLimit ? (r = [])[l] = n : r[o] = n : r = { 0: n }
                                }
                                n = r
                            }
                            return n
                        }(l, t, i)
                }
            };
        e.exports = function(e, t) {
            var i = function(e) { if (!e) return r; if (null !== e.decoder && void 0 !== e.decoder && "function" != typeof e.decoder) throw new TypeError("Decoder has to be a function."); if (void 0 !== e.charset && "utf-8" !== e.charset && "iso-8859-1" !== e.charset) throw new Error("The charset option must be either utf-8, iso-8859-1, or undefined"); var t = void 0 === e.charset ? r.charset : e.charset; return { allowDots: void 0 === e.allowDots ? r.allowDots : !!e.allowDots, allowPrototypes: "boolean" == typeof e.allowPrototypes ? e.allowPrototypes : r.allowPrototypes, arrayLimit: "number" == typeof e.arrayLimit ? e.arrayLimit : r.arrayLimit, charset: t, charsetSentinel: "boolean" == typeof e.charsetSentinel ? e.charsetSentinel : r.charsetSentinel, comma: "boolean" == typeof e.comma ? e.comma : r.comma, decoder: "function" == typeof e.decoder ? e.decoder : r.decoder, delimiter: "string" == typeof e.delimiter || n.isRegExp(e.delimiter) ? e.delimiter : r.delimiter, depth: "number" == typeof e.depth ? e.depth : r.depth, ignoreQueryPrefix: !0 === e.ignoreQueryPrefix, interpretNumericEntities: "boolean" == typeof e.interpretNumericEntities ? e.interpretNumericEntities : r.interpretNumericEntities, parameterLimit: "number" == typeof e.parameterLimit ? e.parameterLimit : r.parameterLimit, parseArrays: !1 !== e.parseArrays, plainObjects: "boolean" == typeof e.plainObjects ? e.plainObjects : r.plainObjects, strictNullHandling: "boolean" == typeof e.strictNullHandling ? e.strictNullHandling : r.strictNullHandling } }(t);
            if ("" === e || null === e || void 0 === e) return i.plainObjects ? Object.create(null) : {};
            for (var l = "string" == typeof e ? function(e, t) {
                    var i, o = {},
                        l = t.ignoreQueryPrefix ? e.replace(/^\?/, "") : e,
                        d = t.parameterLimit === 1 / 0 ? void 0 : t.parameterLimit,
                        c = l.split(t.delimiter, d),
                        u = -1,
                        p = t.charset;
                    if (t.charsetSentinel)
                        for (i = 0; i < c.length; ++i) 0 === c[i].indexOf("utf8=") && ("utf8=%E2%9C%93" === c[i] ? p = "utf-8" : "utf8=%26%2310003%3B" === c[i] && (p = "iso-8859-1"), u = i, i = c.length);
                    for (i = 0; i < c.length; ++i)
                        if (i !== u) {
                            var h, f, m = c[i],
                                g = m.indexOf("]="),
                                v = -1 === g ? m.indexOf("=") : g + 1; - 1 === v ? (h = t.decoder(m, r.decoder, p), f = t.strictNullHandling ? null : "") : (h = t.decoder(m.slice(0, v), r.decoder, p), f = t.decoder(m.slice(v + 1), r.decoder, p)), f && t.interpretNumericEntities && "iso-8859-1" === p && (f = s(f)), f && t.comma && f.indexOf(",") > -1 && (f = f.split(",")), a.call(o, h) ? o[h] = n.combine(o[h], f) : o[h] = f
                        }
                    return o
                }(e, i) : e, d = i.plainObjects ? Object.create(null) : {}, c = Object.keys(l), u = 0; u < c.length; ++u) {
                var p = c[u],
                    h = o(p, l[p], i);
                d = n.merge(d, h, i)
            }
            return n.compact(d)
        }
    },
    DQCr: function(e, t, i) {
        "use strict";
        var n = i("cGG2");

        function a(e) { return encodeURIComponent(e).replace(/%40/gi, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]") }
        e.exports = function(e, t, i) {
            if (!t) return e;
            var r;
            if (i) r = i(t);
            else if (n.isURLSearchParams(t)) r = t.toString();
            else {
                var s = [];
                n.forEach(t, function(e, t) { null !== e && void 0 !== e && (n.isArray(e) ? t += "[]" : e = [e], n.forEach(e, function(e) { n.isDate(e) ? e = e.toISOString() : n.isObject(e) && (e = JSON.stringify(e)), s.push(a(t) + "=" + a(e)) })) }), r = s.join("&")
            }
            return r && (e += (-1 === e.indexOf("?") ? "?" : "&") + r), e
        }
    },
    "E/YD": function(e, t, i) {
        (function(e) {
            ! function(t) {
                if (!document.defaultView || !document.defaultView.getComputedStyle) {
                    var i = e.curCSS;
                    e.curCSS = function(e, t, n) { if ("background-position" === t && (t = "backgroundPosition"), "backgroundPosition" !== t || !e.currentStyle || e.currentStyle[t]) return i.apply(this, arguments); var a = e.style; return !n && a && a[t] ? a[t] : i(e, "backgroundPositionX", n) + " " + i(e, "backgroundPositionY", n) }
                }
                var n = t.fn.animate;

                function a(e) { var t = (e = (e = (e = e.replace(/left|top/g, "0px")).replace(/right|bottom/g, "100%")).replace(/([0-9\.]+)(\s|\)|$)/g, "$1px$2")).match(/(-?[0-9\.]+)(px|\%|em|pt)\s(-?[0-9\.]+)(px|\%|em|pt)/); return [parseFloat(t[1], 10), t[2], parseFloat(t[3], 10), t[4]] }
                t.fn.animate = function(e) { return "background-position" in e && (e.backgroundPosition = e["background-position"], delete e["background-position"]), "backgroundPosition" in e && (e.backgroundPosition = "(" + e.backgroundPosition + ")"), n.apply(this, arguments) }, t.fx.step.backgroundPosition = function(e) {
                    if (!e.bgPosReady) {
                        var i = t.css(e.elem, "backgroundPosition");
                        i || (i = "0px 0px"), i = a(i), e.start = [i[0], i[2]];
                        var n = a(e.end);
                        e.end = [n[0], n[2]], e.unit = [n[1], n[3]], e.bgPosReady = !0
                    }
                    var r = [];
                    r[0] = (e.end[0] - e.start[0]) * e.pos + e.start[0] + e.unit[0], r[1] = (e.end[1] - e.start[1]) * e.pos + e.start[1] + e.unit[1], e.elem.style.backgroundPosition = r[0] + " " + r[1]
                }
            }(e)
        }).call(t, i("7t+N"))
    },
    EqBC: function(e, t, i) {
        "use strict";
        var n = i("kM2E"),
            a = i("FeBl"),
            r = i("7KvD"),
            s = i("t8x9"),
            o = i("fJUb");
        n(n.P + n.R, "Promise", {
            finally: function(e) {
                var t = s(this, a.Promise || r.Promise),
                    i = "function" == typeof e;
                return this.then(i ? function(i) { return o(t, e()).then(function() { return i }) } : e, i ? function(i) { return o(t, e()).then(function() { throw i }) } : e)
            }
        })
    },
    FqXb: function(e, t) { e.exports = "" },
    FtD3: function(e, t, i) {
        "use strict";
        var n = i("t8qj");
        e.exports = function(e, t, i, a, r) { var s = new Error(e); return n(s, t, i, a, r) }
    },
    GHBc: function(e, t, i) {
        "use strict";
        var n = i("cGG2");
        e.exports = n.isStandardBrowserEnv() ? function() {
            var e, t = /(msie|trident)/i.test(navigator.userAgent),
                i = document.createElement("a");

            function a(e) { var n = e; return t && (i.setAttribute("href", n), n = i.href), i.setAttribute("href", n), { href: i.href, protocol: i.protocol ? i.protocol.replace(/:$/, "") : "", host: i.host, search: i.search ? i.search.replace(/^\?/, "") : "", hash: i.hash ? i.hash.replace(/^#/, "") : "", hostname: i.hostname, port: i.port, pathname: "/" === i.pathname.charAt(0) ? i.pathname : "/" + i.pathname } }
            return e = a(window.location.href),
                function(t) { var i = n.isString(t) ? a(t) : t; return i.protocol === e.protocol && i.host === e.host }
        }() : function() { return !0 }
    },
    "JP+z": function(e, t, i) {
        "use strict";
        e.exports = function(e, t) { return function() { for (var i = new Array(arguments.length), n = 0; n < i.length; n++) i[n] = arguments[n]; return e.apply(t, i) } }
    },
    KCLY: function(e, t, i) {
        "use strict";
        (function(t) {
            var n = i("cGG2"),
                a = i("5VQ+"),
                r = { "Content-Type": "application/x-www-form-urlencoded" };

            function s(e, t) {!n.isUndefined(e) && n.isUndefined(e["Content-Type"]) && (e["Content-Type"] = t) }
            var o, l = {
                adapter: ("undefined" != typeof XMLHttpRequest ? o = i("7GwW") : void 0 !== t && (o = i("7GwW")), o),
                transformRequest: [function(e, t) { return a(t, "Content-Type"), n.isFormData(e) || n.isArrayBuffer(e) || n.isBuffer(e) || n.isStream(e) || n.isFile(e) || n.isBlob(e) ? e : n.isArrayBufferView(e) ? e.buffer : n.isURLSearchParams(e) ? (s(t, "application/x-www-form-urlencoded;charset=utf-8"), e.toString()) : n.isObject(e) ? (s(t, "application/json;charset=utf-8"), JSON.stringify(e)) : e }],
                transformResponse: [function(e) {
                    if ("string" == typeof e) try { e = JSON.parse(e) } catch (e) {}
                    return e
                }],
                timeout: 0,
                xsrfCookieName: "XSRF-TOKEN",
                xsrfHeaderName: "X-XSRF-TOKEN",
                maxContentLength: -1,
                validateStatus: function(e) { return e >= 200 && e < 300 }
            };
            l.headers = { common: { Accept: "application/json, text/plain, */*" } }, n.forEach(["delete", "get", "head"], function(e) { l.headers[e] = {} }), n.forEach(["post", "put", "patch"], function(e) { l.headers[e] = n.merge(r) }), e.exports = l
        }).call(t, i("W2nU"))
    },
    KTvl: function(e, t) { e.exports = "" },
    L42u: function(e, t, i) {
        var n, a, r, s = i("+ZMJ"),
            o = i("knuC"),
            l = i("RPLV"),
            d = i("ON07"),
            c = i("7KvD"),
            u = c.process,
            p = c.setImmediate,
            h = c.clearImmediate,
            f = c.MessageChannel,
            m = c.Dispatch,
            g = 0,
            v = {},
            y = function() {
                var e = +this;
                if (v.hasOwnProperty(e)) {
                    var t = v[e];
                    delete v[e], t()
                }
            },
            w = function(e) { y.call(e.data) };
        p && h || (p = function(e) { for (var t = [], i = 1; arguments.length > i;) t.push(arguments[i++]); return v[++g] = function() { o("function" == typeof e ? e : Function(e), t) }, n(g), g }, h = function(e) { delete v[e] }, "process" == i("R9M2")(u) ? n = function(e) { u.nextTick(s(y, e, 1)) } : m && m.now ? n = function(e) { m.now(s(y, e, 1)) } : f ? (r = (a = new f).port2, a.port1.onmessage = w, n = s(r.postMessage, r, 1)) : c.addEventListener && "function" == typeof postMessage && !c.importScripts ? (n = function(e) { c.postMessage(e + "", "*") }, c.addEventListener("message", w, !1)) : n = "onreadystatechange" in d("script") ? function(e) { l.appendChild(d("script")).onreadystatechange = function() { l.removeChild(this), y.call(e) } } : function(e) { setTimeout(s(y, e, 1), 0) }), e.exports = { set: p, clear: h }
    },
    MNkO: function(e, t) { e.exports = "" },
    Mhyx: function(e, t, i) {
        var n = i("/bQp"),
            a = i("dSzd")("iterator"),
            r = Array.prototype;
        e.exports = function(e) { return void 0 !== e && (n.Array === e || r[a] === e) }
    },
    "NWt+": function(e, t, i) {
        var n = i("+ZMJ"),
            a = i("msXi"),
            r = i("Mhyx"),
            s = i("77Pl"),
            o = i("QRG4"),
            l = i("3fs2"),
            d = {},
            c = {};
        (t = e.exports = function(e, t, i, u, p) {
            var h, f, m, g, v = p ? function() { return e } : l(e),
                y = n(i, u, t ? 2 : 1),
                w = 0;
            if ("function" != typeof v) throw TypeError(e + " is not iterable!");
            if (r(v)) {
                for (h = o(e.length); h > w; w++)
                    if ((g = t ? y(s(f = e[w])[0], f[1]) : y(e[w])) === d || g === c) return g
            } else
                for (m = v.call(e); !(f = m.next()).done;)
                    if ((g = a(m, y, f.value, t)) === d || g === c) return g
        }).BREAK = d, t.RETURN = c
    },
    PWzj: function(e, t) { e.exports = "" },
    "RY/4": function(e, t, i) {
        var n = i("R9M2"),
            a = i("dSzd")("toStringTag"),
            r = "Arguments" == n(function() { return arguments }());
        e.exports = function(e) { var t, i, s; return void 0 === e ? "Undefined" : null === e ? "Null" : "string" == typeof(i = function(e, t) { try { return e[t] } catch (e) {} }(t = Object(e), a)) ? i : r ? n(t) : "Object" == (s = n(t)) && "function" == typeof t.callee ? "Arguments" : s }
    },
    TNV1: function(e, t, i) {
        "use strict";
        var n = i("cGG2");
        e.exports = function(e, t, i) { return n.forEach(i, function(i) { e = i(e, t) }), e }
    },
    U5ju: function(e, t, i) { i("M6a0"), i("zQR9"), i("+tPU"), i("CXw9"), i("EqBC"), i("jKW+"), e.exports = i("FeBl").Promise },
    VSCD: function(e, t) { e.exports = "" },
    W2nU: function(e, t) {
        var i, n, a = e.exports = {};

        function r() { throw new Error("setTimeout has not been defined") }

        function s() { throw new Error("clearTimeout has not been defined") }

        function o(e) { if (i === setTimeout) return setTimeout(e, 0); if ((i === r || !i) && setTimeout) return i = setTimeout, setTimeout(e, 0); try { return i(e, 0) } catch (t) { try { return i.call(null, e, 0) } catch (t) { return i.call(this, e, 0) } } }! function() { try { i = "function" == typeof setTimeout ? setTimeout : r } catch (e) { i = r } try { n = "function" == typeof clearTimeout ? clearTimeout : s } catch (e) { n = s } }();
        var l, d = [],
            c = !1,
            u = -1;

        function p() { c && l && (c = !1, l.length ? d = l.concat(d) : u = -1, d.length && h()) }

        function h() {
            if (!c) {
                var e = o(p);
                c = !0;
                for (var t = d.length; t;) {
                    for (l = d, d = []; ++u < t;) l && l[u].run();
                    u = -1, t = d.length
                }
                l = null, c = !1,
                    function(e) { if (n === clearTimeout) return clearTimeout(e); if ((n === s || !n) && clearTimeout) return n = clearTimeout, clearTimeout(e); try { n(e) } catch (t) { try { return n.call(null, e) } catch (t) { return n.call(this, e) } } }(e)
            }
        }

        function f(e, t) { this.fun = e, this.array = t }

        function m() {}
        a.nextTick = function(e) {
            var t = new Array(arguments.length - 1);
            if (arguments.length > 1)
                for (var i = 1; i < arguments.length; i++) t[i - 1] = arguments[i];
            d.push(new f(e, t)), 1 !== d.length || c || o(h)
        }, f.prototype.run = function() { this.fun.apply(null, this.array) }, a.title = "browser", a.browser = !0, a.env = {}, a.argv = [], a.version = "", a.versions = {}, a.on = m, a.addListener = m, a.once = m, a.off = m, a.removeListener = m, a.removeAllListeners = m, a.emit = m, a.prependListener = m, a.prependOnceListener = m, a.listeners = function(e) { return [] }, a.binding = function(e) { throw new Error("process.binding is not supported") }, a.cwd = function() { return "/" }, a.chdir = function(e) { throw new Error("process.chdir is not supported") }, a.umask = function() { return 0 }
    },
    WBHA: function(e, t, i) {
        var n;
        n = function() {
            return function(e) {
                function t(n) { if (i[n]) return i[n].exports; var a = i[n] = { i: n, l: !1, exports: {} }; return e[n].call(a.exports, a, a.exports, t), a.l = !0, a.exports }
                var i = {};
                return t.m = e, t.c = i, t.i = function(e) { return e }, t.d = function(e, i, n) { t.o(e, i) || Object.defineProperty(e, i, { configurable: !1, enumerable: !0, get: n }) }, t.n = function(e) { var i = e && e.__esModule ? function() { return e.default } : function() { return e }; return t.d(i, "a", i), i }, t.o = function(e, t) { return Object.prototype.hasOwnProperty.call(e, t) }, t.p = "/dist/", t(t.s = 2)
            }([function(e, t, i) {
                var n = i(4)(i(1), i(5), null, null);
                e.exports = n.exports
            }, function(e, t, i) {
                "use strict";
                Object.defineProperty(t, "__esModule", { value: !0 });
                var n = i(3);
                t.default = {
                    props: { startVal: { type: Number, required: !1, default: 0 }, endVal: { type: Number, required: !1, default: 2017 }, duration: { type: Number, required: !1, default: 3e3 }, autoplay: { type: Boolean, required: !1, default: !0 }, decimals: { type: Number, required: !1, default: 0, validator: function(e) { return e >= 0 } }, decimal: { type: String, required: !1, default: "." }, separator: { type: String, required: !1, default: "," }, prefix: { type: String, required: !1, default: "" }, suffix: { type: String, required: !1, default: "" }, useEasing: { type: Boolean, required: !1, default: !0 }, easingFn: { type: Function, default: function(e, t, i, n) { return i * (1 - Math.pow(2, -10 * e / n)) * 1024 / 1023 + t } } },
                    data: function() { return { localStartVal: this.startVal, displayValue: this.formatNumber(this.startVal), printVal: null, paused: !1, localDuration: this.duration, startTime: null, timestamp: null, remaining: null, rAF: null } },
                    computed: { countDown: function() { return this.startVal > this.endVal } },
                    watch: { startVal: function() { this.autoplay && this.start() }, endVal: function() { this.autoplay && this.start() } },
                    mounted: function() { this.autoplay && this.start(), this.$emit("mountedCallback") },
                    methods: {
                        start: function() { this.localStartVal = this.startVal, this.startTime = null, this.localDuration = this.duration, this.paused = !1, this.rAF = (0, n.requestAnimationFrame)(this.count) },
                        pauseResume: function() { this.paused ? (this.resume(), this.paused = !1) : (this.pause(), this.paused = !0) },
                        pause: function() {
                            (0, n.cancelAnimationFrame)(this.rAF)
                        },
                        resume: function() { this.startTime = null, this.localDuration = +this.remaining, this.localStartVal = +this.printVal, (0, n.requestAnimationFrame)(this.count) },
                        reset: function() { this.startTime = null, (0, n.cancelAnimationFrame)(this.rAF), this.displayValue = this.formatNumber(this.startVal) },
                        count: function(e) {
                            this.startTime || (this.startTime = e), this.timestamp = e;
                            var t = e - this.startTime;
                            this.remaining = this.localDuration - t, this.useEasing ? this.countDown ? this.printVal = this.localStartVal - this.easingFn(t, 0, this.localStartVal - this.endVal, this.localDuration) : this.printVal = this.easingFn(t, this.localStartVal, this.endVal - this.localStartVal, this.localDuration) : this.countDown ? this.printVal = this.localStartVal - (this.localStartVal - this.endVal) * (t / this.localDuration) : this.printVal = this.localStartVal + (this.localStartVal - this.startVal) * (t / this.localDuration), this.countDown ? this.printVal = this.printVal < this.endVal ? this.endVal : this.printVal : this.printVal = this.printVal > this.endVal ? this.endVal : this.printVal, this.displayValue = this.formatNumber(this.printVal), t < this.localDuration ? this.rAF = (0, n.requestAnimationFrame)(this.count) : this.$emit("callback")
                        },
                        isNumber: function(e) { return !isNaN(parseFloat(e)) },
                        formatNumber: function(e) {
                            e = e.toFixed(this.decimals);
                            var t = (e += "").split("."),
                                i = t[0],
                                n = t.length > 1 ? this.decimal + t[1] : "",
                                a = /(\d+)(\d{3})/;
                            if (this.separator && !this.isNumber(this.separator))
                                for (; a.test(i);) i = i.replace(a, "$1" + this.separator + "$2");
                            return this.prefix + i + n + this.suffix
                        }
                    },
                    destroyed: function() {
                        (0, n.cancelAnimationFrame)(this.rAF)
                    }
                }
            }, function(e, t, i) {
                "use strict";
                Object.defineProperty(t, "__esModule", { value: !0 });
                var n = function(e) { return e && e.__esModule ? e : { default: e } }(i(0));
                t.default = n.default, "undefined" != typeof window && window.Vue && window.Vue.component("count-to", n.default)
            }, function(e, t, i) {
                "use strict";
                Object.defineProperty(t, "__esModule", { value: !0 });
                var n = 0,
                    a = "webkit moz ms o".split(" "),
                    r = void 0,
                    s = void 0;
                if ("undefined" == typeof window) t.requestAnimationFrame = r = function() {}, t.cancelAnimationFrame = s = function() {};
                else {
                    t.requestAnimationFrame = r = window.requestAnimationFrame, t.cancelAnimationFrame = s = window.cancelAnimationFrame;
                    for (var o = void 0, l = 0; l < a.length && (!r || !s); l++) o = a[l], t.requestAnimationFrame = r = r || window[o + "RequestAnimationFrame"], t.cancelAnimationFrame = s = s || window[o + "CancelAnimationFrame"] || window[o + "CancelRequestAnimationFrame"];
                    r && s || (t.requestAnimationFrame = r = function(e) {
                        var t = (new Date).getTime(),
                            i = Math.max(0, 16 - (t - n)),
                            a = window.setTimeout(function() { e(t + i) }, i);
                        return n = t + i, a
                    }, t.cancelAnimationFrame = s = function(e) { window.clearTimeout(e) })
                }
                t.requestAnimationFrame = r, t.cancelAnimationFrame = s
            }, function(e, t) {
                e.exports = function(e, t, i, n) {
                    var a, r = e = e || {},
                        s = typeof e.default;
                    "object" !== s && "function" !== s || (a = e, r = e.default);
                    var o = "function" == typeof r ? r.options : r;
                    if (t && (o.render = t.render, o.staticRenderFns = t.staticRenderFns), i && (o._scopeId = i), n) {
                        var l = Object.create(o.computed || null);
                        Object.keys(n).forEach(function(e) {
                            var t = n[e];
                            l[e] = function() { return t }
                        }), o.computed = l
                    }
                    return { esModule: a, exports: r, options: o }
                }
            }, function(e, t) {
                e.exports = {
                    render: function() {
                        var e = this,
                            t = e.$createElement;
                        return (e._self._c || t)("span", [e._v("\n  " + e._s(e.displayValue) + "\n")])
                    },
                    staticRenderFns: []
                }
            }])
        }, e.exports = n()
    },
    XgCd: function(e, t, i) {
        "use strict";
        var n = String.prototype.replace,
            a = /%20/g;
        e.exports = { default: "RFC3986", formatters: { RFC1738: function(e) { return n.call(e, a, "+") }, RFC3986: function(e) { return e } }, RFC1738: "RFC1738", RFC3986: "RFC3986" }
    },
    XmWM: function(e, t, i) {
        "use strict";
        var n = i("KCLY"),
            a = i("cGG2"),
            r = i("fuGk"),
            s = i("xLtR");

        function o(e) { this.defaults = e, this.interceptors = { request: new r, response: new r } }
        o.prototype.request = function(e) {
            "string" == typeof e && (e = a.merge({ url: arguments[0] }, arguments[1])), (e = a.merge(n, { method: "get" }, this.defaults, e)).method = e.method.toLowerCase();
            var t = [s, void 0],
                i = Promise.resolve(e);
            for (this.interceptors.request.forEach(function(e) { t.unshift(e.fulfilled, e.rejected) }), this.interceptors.response.forEach(function(e) { t.push(e.fulfilled, e.rejected) }); t.length;) i = i.then(t.shift(), t.shift());
            return i
        }, a.forEach(["delete", "get", "head", "options"], function(e) { o.prototype[e] = function(t, i) { return this.request(a.merge(i || {}, { method: e, url: t })) } }), a.forEach(["post", "put", "patch"], function(e) { o.prototype[e] = function(t, i, n) { return this.request(a.merge(n || {}, { method: e, url: t, data: i })) } }), e.exports = o
    },
    YzTf: function(e, t) { e.exports = "" },
    bRrM: function(e, t, i) {
        "use strict";
        var n = i("7KvD"),
            a = i("FeBl"),
            r = i("evD5"),
            s = i("+E39"),
            o = i("dSzd")("species");
        e.exports = function(e) {
            var t = "function" == typeof a[e] ? a[e] : n[e];
            s && t && !t[o] && r.f(t, o, { configurable: !0, get: function() { return this } })
        }
    },
    cGG2: function(e, t, i) {
        "use strict";
        var n = i("JP+z"),
            a = i("1Yoh"),
            r = Object.prototype.toString;

        function s(e) { return "[object Array]" === r.call(e) }

        function o(e) { return null !== e && "object" == typeof e }

        function l(e) { return "[object Function]" === r.call(e) }

        function d(e, t) {
            if (null !== e && void 0 !== e)
                if ("object" != typeof e && (e = [e]), s(e))
                    for (var i = 0, n = e.length; i < n; i++) t.call(null, e[i], i, e);
                else
                    for (var a in e) Object.prototype.hasOwnProperty.call(e, a) && t.call(null, e[a], a, e)
        }
        e.exports = {
            isArray: s,
            isArrayBuffer: function(e) { return "[object ArrayBuffer]" === r.call(e) },
            isBuffer: a,
            isFormData: function(e) { return "undefined" != typeof FormData && e instanceof FormData },
            isArrayBufferView: function(e) { return "undefined" != typeof ArrayBuffer && ArrayBuffer.isView ? ArrayBuffer.isView(e) : e && e.buffer && e.buffer instanceof ArrayBuffer },
            isString: function(e) { return "string" == typeof e },
            isNumber: function(e) { return "number" == typeof e },
            isObject: o,
            isUndefined: function(e) { return void 0 === e },
            isDate: function(e) { return "[object Date]" === r.call(e) },
            isFile: function(e) { return "[object File]" === r.call(e) },
            isBlob: function(e) { return "[object Blob]" === r.call(e) },
            isFunction: l,
            isStream: function(e) { return o(e) && l(e.pipe) },
            isURLSearchParams: function(e) { return "undefined" != typeof URLSearchParams && e instanceof URLSearchParams },
            isStandardBrowserEnv: function() { return ("undefined" == typeof navigator || "ReactNative" !== navigator.product) && "undefined" != typeof window && "undefined" != typeof document },
            forEach: d,
            merge: function e() {
                var t = {};

                function i(i, n) { "object" == typeof t[n] && "object" == typeof i ? t[n] = e(t[n], i) : t[n] = i }
                for (var n = 0, a = arguments.length; n < a; n++) d(arguments[n], i);
                return t
            },
            extend: function(e, t, i) { return d(t, function(t, a) { e[a] = i && "function" == typeof t ? n(t, i) : t }), e },
            trim: function(e) { return e.replace(/^\s*/, "").replace(/\s*$/, "") }
        }
    },
    cWxy: function(e, t, i) {
        "use strict";
        var n = i("dVOP");

        function a(e) {
            if ("function" != typeof e) throw new TypeError("executor must be a function.");
            var t;
            this.promise = new Promise(function(e) { t = e });
            var i = this;
            e(function(e) { i.reason || (i.reason = new n(e), t(i.reason)) })
        }
        a.prototype.throwIfRequested = function() { if (this.reason) throw this.reason }, a.source = function() { var e; return { token: new a(function(t) { e = t }), cancel: e } }, e.exports = a
    },
    civE: function(e, t) { e.exports = "" },
    dIwP: function(e, t, i) {
        "use strict";
        e.exports = function(e) { return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e) }
    },
    dNDb: function(e, t) { e.exports = function(e) { try { return { e: !1, v: e() } } catch (e) { return { e: !0, v: e } } } },
    dVOP: function(e, t, i) {
        "use strict";

        function n(e) { this.message = e }
        n.prototype.toString = function() { return "Cancel" + (this.message ? ": " + this.message : "") }, n.prototype.__CANCEL__ = !0, e.exports = n
    },
    dY0y: function(e, t, i) {
        var n = i("dSzd")("iterator"),
            a = !1;
        try {
            var r = [7][n]();
            r.return = function() { a = !0 }, Array.from(r, function() { throw 2 })
        } catch (e) {}
        e.exports = function(e, t) {
            if (!t && !a) return !1;
            var i = !1;
            try {
                var r = [7],
                    s = r[n]();
                s.next = function() { return { done: i = !0 } }, r[n] = function() { return s }, e(r)
            } catch (e) {}
            return i
        }
    },
    fJUb: function(e, t, i) {
        var n = i("77Pl"),
            a = i("EqjI"),
            r = i("qARP");
        e.exports = function(e, t) { if (n(e), a(t) && t.constructor === e) return t; var i = r.f(e); return (0, i.resolve)(t), i.promise }
    },
    fuGk: function(e, t, i) {
        "use strict";
        var n = i("cGG2");

        function a() { this.handlers = [] }
        a.prototype.use = function(e, t) { return this.handlers.push({ fulfilled: e, rejected: t }), this.handlers.length - 1 }, a.prototype.eject = function(e) { this.handlers[e] && (this.handlers[e] = null) }, a.prototype.forEach = function(e) { n.forEach(this.handlers, function(t) { null !== t && e(t) }) }, e.exports = a
    },
    grlS: function(e, t) {},
    "hk/z": function(e, t) { e.exports = "" },
    iUbK: function(e, t, i) {
        var n = i("7KvD").navigator;
        e.exports = n && n.userAgent || ""
    },
    "jKW+": function(e, t, i) {
        "use strict";
        var n = i("kM2E"),
            a = i("qARP"),
            r = i("dNDb");
        n(n.S, "Promise", {
            try: function(e) {
                var t = a.f(this),
                    i = r(e);
                return (i.e ? t.reject : t.resolve)(i.v), t.promise
            }
        })
    },
    kCm9: function(e, t) { e.exports = "" },
    knuC: function(e, t) {
        e.exports = function(e, t, i) {
            var n = void 0 === i;
            switch (t.length) {
                case 0:
                    return n ? e() : e.call(i);
                case 1:
                    return n ? e(t[0]) : e.call(i, t[0]);
                case 2:
                    return n ? e(t[0], t[1]) : e.call(i, t[0], t[1]);
                case 3:
                    return n ? e(t[0], t[1], t[2]) : e.call(i, t[0], t[1], t[2]);
                case 4:
                    return n ? e(t[0], t[1], t[2], t[3]) : e.call(i, t[0], t[1], t[2], t[3])
            }
            return e.apply(i, t)
        }
    },
    kzo9: function(e, t, i) {
        (function(t) {
            ! function() {
                "use strict";
                var e, i, n = function(i, r) {
                    function s(e) { return Math.floor(e) }

                    function o() {
                        var e = x.params.autoplay,
                            t = x.slides.eq(x.activeIndex);
                        t.attr("data-swiper-autoplay") && (e = t.attr("data-swiper-autoplay") || x.params.autoplay), x.autoplayTimeoutId = setTimeout(function() { x.params.loop ? (x.fixLoop(), x._slideNext(), x.emit("onAutoplay", x)) : x.isEnd ? r.autoplayStopOnLast ? x.stopAutoplay() : (x._slideTo(0), x.emit("onAutoplay", x)) : (x._slideNext(), x.emit("onAutoplay", x)) }, e)
                    }

                    function l(t, i) {
                        var n = e(t.target);
                        if (!n.is(i))
                            if ("string" == typeof i) n = n.parents(i);
                            else if (i.nodeType) { var a; return n.parents().each(function(e, t) { t === i && (a = i) }), a ? i : void 0 }
                        if (0 !== n.length) return n[0]
                    }

                    function d(e, t) {
                        t = t || {};
                        var i = new(window.MutationObserver || window.WebkitMutationObserver)(function(e) { e.forEach(function(e) { x.onResize(!0), x.emit("onObserverUpdate", x, e) }) });
                        i.observe(e, { attributes: void 0 === t.attributes || t.attributes, childList: void 0 === t.childList || t.childList, characterData: void 0 === t.characterData || t.characterData }), x.observers.push(i)
                    }

                    function c(e) {
                        e.originalEvent && (e = e.originalEvent);
                        var t = e.keyCode || e.charCode;
                        if (!x.params.allowSwipeToNext && (x.isHorizontal() && 39 === t || !x.isHorizontal() && 40 === t)) return !1;
                        if (!x.params.allowSwipeToPrev && (x.isHorizontal() && 37 === t || !x.isHorizontal() && 38 === t)) return !1;
                        if (!(e.shiftKey || e.altKey || e.ctrlKey || e.metaKey || document.activeElement && document.activeElement.nodeName && ("input" === document.activeElement.nodeName.toLowerCase() || "textarea" === document.activeElement.nodeName.toLowerCase()))) {
                            if (37 === t || 39 === t || 38 === t || 40 === t) {
                                var i = !1;
                                if (x.container.parents("." + x.params.slideClass).length > 0 && 0 === x.container.parents("." + x.params.slideActiveClass).length) return;
                                var n = { left: window.pageXOffset, top: window.pageYOffset },
                                    a = window.innerWidth,
                                    r = window.innerHeight,
                                    s = x.container.offset();
                                x.rtl && (s.left = s.left - x.container[0].scrollLeft);
                                for (var o = [
                                        [s.left, s.top],
                                        [s.left + x.width, s.top],
                                        [s.left, s.top + x.height],
                                        [s.left + x.width, s.top + x.height]
                                    ], l = 0; l < o.length; l++) {
                                    var d = o[l];
                                    d[0] >= n.left && d[0] <= n.left + a && d[1] >= n.top && d[1] <= n.top + r && (i = !0)
                                }
                                if (!i) return
                            }
                            x.isHorizontal() ? (37 !== t && 39 !== t || (e.preventDefault ? e.preventDefault() : e.returnValue = !1), (39 === t && !x.rtl || 37 === t && x.rtl) && x.slideNext(), (37 === t && !x.rtl || 39 === t && x.rtl) && x.slidePrev()) : (38 !== t && 40 !== t || (e.preventDefault ? e.preventDefault() : e.returnValue = !1), 40 === t && x.slideNext(), 38 === t && x.slidePrev()), x.emit("onKeyPress", x, t)
                        }
                    }

                    function u(e) {
                        e.originalEvent && (e = e.originalEvent);
                        var t = 0,
                            i = x.rtl ? -1 : 1,
                            n = function(e) {
                                var t = 0,
                                    i = 0,
                                    n = 0,
                                    a = 0;
                                return "detail" in e && (i = e.detail), "wheelDelta" in e && (i = -e.wheelDelta / 120), "wheelDeltaY" in e && (i = -e.wheelDeltaY / 120), "wheelDeltaX" in e && (t = -e.wheelDeltaX / 120), "axis" in e && e.axis === e.HORIZONTAL_AXIS && (t = i, i = 0), n = 10 * t, a = 10 * i, "deltaY" in e && (a = e.deltaY), "deltaX" in e && (n = e.deltaX), (n || a) && e.deltaMode && (1 === e.deltaMode ? (n *= 40, a *= 40) : (n *= 800, a *= 800)), n && !t && (t = n < 1 ? -1 : 1), a && !i && (i = a < 1 ? -1 : 1), { spinX: t, spinY: i, pixelX: n, pixelY: a }
                            }(e);
                        if (x.params.mousewheelForceToAxis)
                            if (x.isHorizontal()) {
                                if (!(Math.abs(n.pixelX) > Math.abs(n.pixelY))) return;
                                t = n.pixelX * i
                            } else {
                                if (!(Math.abs(n.pixelY) > Math.abs(n.pixelX))) return;
                                t = n.pixelY
                            }
                        else t = Math.abs(n.pixelX) > Math.abs(n.pixelY) ? -n.pixelX * i : -n.pixelY;
                        if (0 !== t) {
                            if (x.params.mousewheelInvert && (t = -t), x.params.freeMode) {
                                var a = x.getWrapperTranslate() + t * x.params.mousewheelSensitivity,
                                    r = x.isBeginning,
                                    s = x.isEnd;
                                if (a >= x.minTranslate() && (a = x.minTranslate()), a <= x.maxTranslate() && (a = x.maxTranslate()), x.setWrapperTransition(0), x.setWrapperTranslate(a), x.updateProgress(), x.updateActiveIndex(), (!r && x.isBeginning || !s && x.isEnd) && x.updateClasses(), x.params.freeModeSticky ? (clearTimeout(x.mousewheel.timeout), x.mousewheel.timeout = setTimeout(function() { x.slideReset() }, 300)) : x.params.lazyLoading && x.lazy && x.lazy.load(), x.emit("onScroll", x, e), x.params.autoplay && x.params.autoplayDisableOnInteraction && x.stopAutoplay(), 0 === a || a === x.maxTranslate()) return
                            } else {
                                if ((new window.Date).getTime() - x.mousewheel.lastScrollTime > 60)
                                    if (t < 0)
                                        if (x.isEnd && !x.params.loop || x.animating) { if (x.params.mousewheelReleaseOnEdges) return !0 } else x.slideNext(), x.emit("onScroll", x, e);
                                else if (x.isBeginning && !x.params.loop || x.animating) { if (x.params.mousewheelReleaseOnEdges) return !0 } else x.slidePrev(), x.emit("onScroll", x, e);
                                x.mousewheel.lastScrollTime = (new window.Date).getTime()
                            }
                            return e.preventDefault ? e.preventDefault() : e.returnValue = !1, !1
                        }
                    }

                    function p(t, i) {
                        t = e(t);
                        var n, a, r, s = x.rtl ? -1 : 1;
                        n = t.attr("data-swiper-parallax") || "0", a = t.attr("data-swiper-parallax-x"), r = t.attr("data-swiper-parallax-y"), a || r ? (a = a || "0", r = r || "0") : x.isHorizontal() ? (a = n, r = "0") : (r = n, a = "0"), a = a.indexOf("%") >= 0 ? parseInt(a, 10) * i * s + "%" : a * i * s + "px", r = r.indexOf("%") >= 0 ? parseInt(r, 10) * i + "%" : r * i + "px", t.transform("translate3d(" + a + ", " + r + ",0px)")
                    }

                    function h(e) { return 0 !== e.indexOf("on") && (e = e[0] !== e[0].toUpperCase() ? "on" + e[0].toUpperCase() + e.substring(1) : "on" + e), e }
                    if (!(this instanceof n)) return new n(i, r);
                    var f = { direction: "horizontal", touchEventsTarget: "container", initialSlide: 0, speed: 300, autoplay: !1, autoplayDisableOnInteraction: !0, autoplayStopOnLast: !1, iOSEdgeSwipeDetection: !1, iOSEdgeSwipeThreshold: 20, freeMode: !1, freeModeMomentum: !0, freeModeMomentumRatio: 1, freeModeMomentumBounce: !0, freeModeMomentumBounceRatio: 1, freeModeMomentumVelocityRatio: 1, freeModeSticky: !1, freeModeMinimumVelocity: .02, autoHeight: !1, setWrapperSize: !1, virtualTranslate: !1, effect: "slide", coverflow: { rotate: 50, stretch: 0, depth: 100, modifier: 1, slideShadows: !0 }, flip: { slideShadows: !0, limitRotation: !0 }, cube: { slideShadows: !0, shadow: !0, shadowOffset: 20, shadowScale: .94 }, fade: { crossFade: !1 }, parallax: !1, zoom: !1, zoomMax: 3, zoomMin: 1, zoomToggle: !0, scrollbar: null, scrollbarHide: !0, scrollbarDraggable: !1, scrollbarSnapOnRelease: !1, keyboardControl: !1, mousewheelControl: !1, mousewheelReleaseOnEdges: !1, mousewheelInvert: !1, mousewheelForceToAxis: !1, mousewheelSensitivity: 1, mousewheelEventsTarged: "container", hashnav: !1, hashnavWatchState: !1, history: !1, replaceState: !1, breakpoints: void 0, spaceBetween: 0, slidesPerView: 1, slidesPerColumn: 1, slidesPerColumnFill: "column", slidesPerGroup: 1, centeredSlides: !1, slidesOffsetBefore: 0, slidesOffsetAfter: 0, roundLengths: !1, touchRatio: 1, touchAngle: 45, simulateTouch: !0, shortSwipes: !0, longSwipes: !0, longSwipesRatio: .5, longSwipesMs: 300, followFinger: !0, onlyExternal: !1, threshold: 0, touchMoveStopPropagation: !0, touchReleaseOnEdges: !1, uniqueNavElements: !0, pagination: null, paginationElement: "span", paginationClickable: !1, paginationHide: !1, paginationBulletRender: null, paginationProgressRender: null, paginationFractionRender: null, paginationCustomRender: null, paginationType: "bullets", resistance: !0, resistanceRatio: .85, nextButton: null, prevButton: null, watchSlidesProgress: !1, watchSlidesVisibility: !1, grabCursor: !1, preventClicks: !0, preventClicksPropagation: !0, slideToClickedSlide: !1, lazyLoading: !1, lazyLoadingInPrevNext: !1, lazyLoadingInPrevNextAmount: 1, lazyLoadingOnTransitionStart: !1, preloadImages: !0, updateOnImagesReady: !0, loop: !1, loopAdditionalSlides: 0, loopedSlides: null, control: void 0, controlInverse: !1, controlBy: "slide", normalizeSlideIndex: !0, allowSwipeToPrev: !0, allowSwipeToNext: !0, swipeHandler: null, noSwiping: !0, noSwipingClass: "swiper-no-swiping", passiveListeners: !0, containerModifierClass: "swiper-container-", slideClass: "swiper-slide", slideActiveClass: "swiper-slide-active", slideDuplicateActiveClass: "swiper-slide-duplicate-active", slideVisibleClass: "swiper-slide-visible", slideDuplicateClass: "swiper-slide-duplicate", slideNextClass: "swiper-slide-next", slideDuplicateNextClass: "swiper-slide-duplicate-next", slidePrevClass: "swiper-slide-prev", slideDuplicatePrevClass: "swiper-slide-duplicate-prev", wrapperClass: "swiper-wrapper", bulletClass: "swiper-pagination-bullet", bulletActiveClass: "swiper-pagination-bullet-active", buttonDisabledClass: "swiper-button-disabled", paginationCurrentClass: "swiper-pagination-current", paginationTotalClass: "swiper-pagination-total", paginationHiddenClass: "swiper-pagination-hidden", paginationProgressbarClass: "swiper-pagination-progressbar", paginationClickableClass: "swiper-pagination-clickable", paginationModifierClass: "swiper-pagination-", lazyLoadingClass: "swiper-lazy", lazyStatusLoadingClass: "swiper-lazy-loading", lazyStatusLoadedClass: "swiper-lazy-loaded", lazyPreloaderClass: "swiper-lazy-preloader", notificationClass: "swiper-notification", preloaderClass: "preloader", zoomContainerClass: "swiper-zoom-container", observer: !1, observeParents: !1, a11y: !1, prevSlideMessage: "Previous slide", nextSlideMessage: "Next slide", firstSlideMessage: "This is the first slide", lastSlideMessage: "This is the last slide", paginationBulletMessage: "Go to slide {{index}}", runCallbacksOnInit: !0 },
                        m = r && r.virtualTranslate;
                    r = r || {};
                    var g = {};
                    for (var v in r)
                        if ("object" != typeof r[v] || null === r[v] || r[v].nodeType || r[v] === window || r[v] === document || void 0 !== a && r[v] instanceof a || void 0 !== t && r[v] instanceof t) g[v] = r[v];
                        else
                            for (var y in g[v] = {}, r[v]) g[v][y] = r[v][y];
                    for (var w in f)
                        if (void 0 === r[w]) r[w] = f[w];
                        else if ("object" == typeof r[w])
                        for (var b in f[w]) void 0 === r[w][b] && (r[w][b] = f[w][b]);
                    var x = this;
                    if (x.params = r, x.originalParams = g, x.classNames = [], void 0 !== e && void 0 !== a && (e = a), (void 0 !== e || (e = void 0 === a ? window.Dom7 || window.Zepto || window.jQuery : a)) && (x.$ = e, x.currentBreakpoint = void 0, x.getActiveBreakpoint = function() {
                            if (!x.params.breakpoints) return !1;
                            var e, t = !1,
                                i = [];
                            for (e in x.params.breakpoints) x.params.breakpoints.hasOwnProperty(e) && i.push(e);
                            i.sort(function(e, t) { return parseInt(e, 10) > parseInt(t, 10) });
                            for (var n = 0; n < i.length; n++)(e = i[n]) >= window.innerWidth && !t && (t = e);
                            return t || "max"
                        }, x.setBreakpoint = function() {
                            var e = x.getActiveBreakpoint();
                            if (e && x.currentBreakpoint !== e) {
                                var t = e in x.params.breakpoints ? x.params.breakpoints[e] : x.originalParams,
                                    i = x.params.loop && t.slidesPerView !== x.params.slidesPerView;
                                for (var n in t) x.params[n] = t[n];
                                x.currentBreakpoint = e, i && x.destroyLoop && x.reLoop(!0)
                            }
                        }, x.params.breakpoints && x.setBreakpoint(), x.container = e(i), 0 !== x.container.length)) {
                        if (x.container.length > 1) { var T = []; return x.container.each(function() { T.push(new n(this, r)) }), T }
                        x.container[0].swiper = x, x.container.data("swiper", x), x.classNames.push(x.params.containerModifierClass + x.params.direction), x.params.freeMode && x.classNames.push(x.params.containerModifierClass + "free-mode"), x.support.flexbox || (x.classNames.push(x.params.containerModifierClass + "no-flexbox"), x.params.slidesPerColumn = 1), x.params.autoHeight && x.classNames.push(x.params.containerModifierClass + "autoheight"), (x.params.parallax || x.params.watchSlidesVisibility) && (x.params.watchSlidesProgress = !0), x.params.touchReleaseOnEdges && (x.params.resistanceRatio = 0), ["cube", "coverflow", "flip"].indexOf(x.params.effect) >= 0 && (x.support.transforms3d ? (x.params.watchSlidesProgress = !0, x.classNames.push(x.params.containerModifierClass + "3d")) : x.params.effect = "slide"), "slide" !== x.params.effect && x.classNames.push(x.params.containerModifierClass + x.params.effect), "cube" === x.params.effect && (x.params.resistanceRatio = 0, x.params.slidesPerView = 1, x.params.slidesPerColumn = 1, x.params.slidesPerGroup = 1, x.params.centeredSlides = !1, x.params.spaceBetween = 0, x.params.virtualTranslate = !0), "fade" !== x.params.effect && "flip" !== x.params.effect || (x.params.slidesPerView = 1, x.params.slidesPerColumn = 1, x.params.slidesPerGroup = 1, x.params.watchSlidesProgress = !0, x.params.spaceBetween = 0, void 0 === m && (x.params.virtualTranslate = !0)), x.params.grabCursor && x.support.touch && (x.params.grabCursor = !1), x.wrapper = x.container.children("." + x.params.wrapperClass), x.params.pagination && (x.paginationContainer = e(x.params.pagination), x.params.uniqueNavElements && "string" == typeof x.params.pagination && x.paginationContainer.length > 1 && 1 === x.container.find(x.params.pagination).length && (x.paginationContainer = x.container.find(x.params.pagination)), "bullets" === x.params.paginationType && x.params.paginationClickable ? x.paginationContainer.addClass(x.params.paginationModifierClass + "clickable") : x.params.paginationClickable = !1, x.paginationContainer.addClass(x.params.paginationModifierClass + x.params.paginationType)), (x.params.nextButton || x.params.prevButton) && (x.params.nextButton && (x.nextButton = e(x.params.nextButton), x.params.uniqueNavElements && "string" == typeof x.params.nextButton && x.nextButton.length > 1 && 1 === x.container.find(x.params.nextButton).length && (x.nextButton = x.container.find(x.params.nextButton))), x.params.prevButton && (x.prevButton = e(x.params.prevButton), x.params.uniqueNavElements && "string" == typeof x.params.prevButton && x.prevButton.length > 1 && 1 === x.container.find(x.params.prevButton).length && (x.prevButton = x.container.find(x.params.prevButton)))), x.isHorizontal = function() { return "horizontal" === x.params.direction }, x.rtl = x.isHorizontal() && ("rtl" === x.container[0].dir.toLowerCase() || "rtl" === x.container.css("direction")), x.rtl && x.classNames.push(x.params.containerModifierClass + "rtl"), x.rtl && (x.wrongRTL = "-webkit-box" === x.wrapper.css("display")), x.params.slidesPerColumn > 1 && x.classNames.push(x.params.containerModifierClass + "multirow"), x.device.android && x.classNames.push(x.params.containerModifierClass + "android"), x.container.addClass(x.classNames.join(" ")), x.translate = 0, x.progress = 0, x.velocity = 0, x.lockSwipeToNext = function() { x.params.allowSwipeToNext = !1, !1 === x.params.allowSwipeToPrev && x.params.grabCursor && x.unsetGrabCursor() }, x.lockSwipeToPrev = function() { x.params.allowSwipeToPrev = !1, !1 === x.params.allowSwipeToNext && x.params.grabCursor && x.unsetGrabCursor() }, x.lockSwipes = function() { x.params.allowSwipeToNext = x.params.allowSwipeToPrev = !1, x.params.grabCursor && x.unsetGrabCursor() }, x.unlockSwipeToNext = function() { x.params.allowSwipeToNext = !0, !0 === x.params.allowSwipeToPrev && x.params.grabCursor && x.setGrabCursor() }, x.unlockSwipeToPrev = function() { x.params.allowSwipeToPrev = !0, !0 === x.params.allowSwipeToNext && x.params.grabCursor && x.setGrabCursor() }, x.unlockSwipes = function() { x.params.allowSwipeToNext = x.params.allowSwipeToPrev = !0, x.params.grabCursor && x.setGrabCursor() }, x.setGrabCursor = function(e) { x.container[0].style.cursor = "move", x.container[0].style.cursor = e ? "-webkit-grabbing" : "-webkit-grab", x.container[0].style.cursor = e ? "-moz-grabbin" : "-moz-grab", x.container[0].style.cursor = e ? "grabbing" : "grab" }, x.unsetGrabCursor = function() { x.container[0].style.cursor = "" }, x.params.grabCursor && x.setGrabCursor(), x.imagesToLoad = [], x.imagesLoaded = 0, x.loadImage = function(e, t, i, n, a, r) {
                            function s() { r && r() }
                            var o;
                            e.complete && a ? s() : t ? ((o = new window.Image).onload = s, o.onerror = s, n && (o.sizes = n), i && (o.srcset = i), t && (o.src = t)) : s()
                        }, x.preloadImages = function() {
                            function e() { void 0 !== x && null !== x && x && (void 0 !== x.imagesLoaded && x.imagesLoaded++, x.imagesLoaded === x.imagesToLoad.length && (x.params.updateOnImagesReady && x.update(), x.emit("onImagesReady", x))) }
                            x.imagesToLoad = x.container.find("img");
                            for (var t = 0; t < x.imagesToLoad.length; t++) x.loadImage(x.imagesToLoad[t], x.imagesToLoad[t].currentSrc || x.imagesToLoad[t].getAttribute("src"), x.imagesToLoad[t].srcset || x.imagesToLoad[t].getAttribute("srcset"), x.imagesToLoad[t].sizes || x.imagesToLoad[t].getAttribute("sizes"), !0, e)
                        }, x.autoplayTimeoutId = void 0, x.autoplaying = !1, x.autoplayPaused = !1, x.startAutoplay = function() { return void 0 === x.autoplayTimeoutId && !!x.params.autoplay && !x.autoplaying && (x.autoplaying = !0, x.emit("onAutoplayStart", x), void o()) }, x.stopAutoplay = function(e) { x.autoplayTimeoutId && (x.autoplayTimeoutId && clearTimeout(x.autoplayTimeoutId), x.autoplaying = !1, x.autoplayTimeoutId = void 0, x.emit("onAutoplayStop", x)) }, x.pauseAutoplay = function(e) { x.autoplayPaused || (x.autoplayTimeoutId && clearTimeout(x.autoplayTimeoutId), x.autoplayPaused = !0, 0 === e ? (x.autoplayPaused = !1, o()) : x.wrapper.transitionEnd(function() { x && (x.autoplayPaused = !1, x.autoplaying ? o() : x.stopAutoplay()) })) }, x.minTranslate = function() { return -x.snapGrid[0] }, x.maxTranslate = function() { return -x.snapGrid[x.snapGrid.length - 1] }, x.updateAutoHeight = function() {
                            var e, t = [],
                                i = 0;
                            if ("auto" !== x.params.slidesPerView && x.params.slidesPerView > 1)
                                for (e = 0; e < Math.ceil(x.params.slidesPerView); e++) {
                                    var n = x.activeIndex + e;
                                    if (n > x.slides.length) break;
                                    t.push(x.slides.eq(n)[0])
                                } else t.push(x.slides.eq(x.activeIndex)[0]);
                            for (e = 0; e < t.length; e++)
                                if (void 0 !== t[e]) {
                                    var a = t[e].offsetHeight;
                                    i = a > i ? a : i
                                }
                            i && x.wrapper.css("height", i + "px")
                        }, x.updateContainerSize = function() {
                            var e, t;
                            e = void 0 !== x.params.width ? x.params.width : x.container[0].clientWidth, t = void 0 !== x.params.height ? x.params.height : x.container[0].clientHeight, 0 === e && x.isHorizontal() || 0 === t && !x.isHorizontal() || (e = e - parseInt(x.container.css("padding-left"), 10) - parseInt(x.container.css("padding-right"), 10), t = t - parseInt(x.container.css("padding-top"), 10) - parseInt(x.container.css("padding-bottom"), 10), x.width = e, x.height = t, x.size = x.isHorizontal() ? x.width : x.height)
                        }, x.updateSlidesSize = function() {
                            x.slides = x.wrapper.children("." + x.params.slideClass), x.snapGrid = [], x.slidesGrid = [], x.slidesSizesGrid = [];
                            var e, t = x.params.spaceBetween,
                                i = -x.params.slidesOffsetBefore,
                                n = 0,
                                a = 0;
                            if (void 0 !== x.size) {
                                var r;
                                "string" == typeof t && t.indexOf("%") >= 0 && (t = parseFloat(t.replace("%", "")) / 100 * x.size), x.virtualSize = -t, x.rtl ? x.slides.css({ marginLeft: "", marginTop: "" }) : x.slides.css({ marginRight: "", marginBottom: "" }), x.params.slidesPerColumn > 1 && (r = Math.floor(x.slides.length / x.params.slidesPerColumn) === x.slides.length / x.params.slidesPerColumn ? x.slides.length : Math.ceil(x.slides.length / x.params.slidesPerColumn) * x.params.slidesPerColumn, "auto" !== x.params.slidesPerView && "row" === x.params.slidesPerColumnFill && (r = Math.max(r, x.params.slidesPerView * x.params.slidesPerColumn)));
                                var o, l, d = x.params.slidesPerColumn,
                                    c = r / d,
                                    u = c - (x.params.slidesPerColumn * c - x.slides.length);
                                for (e = 0; e < x.slides.length; e++) { o = 0; var p, h, f, m = x.slides.eq(e); if (x.params.slidesPerColumn > 1) "column" === x.params.slidesPerColumnFill ? (f = e - (h = Math.floor(e / d)) * d, (h > u || h === u && f === d - 1) && ++f >= d && (f = 0, h++), p = h + f * r / d, m.css({ "-webkit-box-ordinal-group": p, "-moz-box-ordinal-group": p, "-ms-flex-order": p, "-webkit-order": p, order: p })) : h = e - (f = Math.floor(e / c)) * c, m.css("margin-" + (x.isHorizontal() ? "top" : "left"), 0 !== f && x.params.spaceBetween && x.params.spaceBetween + "px").attr("data-swiper-column", h).attr("data-swiper-row", f); "none" !== m.css("display") && ("auto" === x.params.slidesPerView ? (o = x.isHorizontal() ? m.outerWidth(!0) : m.outerHeight(!0), x.params.roundLengths && (o = s(o))) : (o = (x.size - (x.params.slidesPerView - 1) * t) / x.params.slidesPerView, x.params.roundLengths && (o = s(o)), x.isHorizontal() ? x.slides[e].style.width = o + "px" : x.slides[e].style.height = o + "px"), x.slides[e].swiperSlideSize = o, x.slidesSizesGrid.push(o), x.params.centeredSlides ? (i = i + o / 2 + n / 2 + t, 0 === n && 0 !== e && (i = i - x.size / 2 - t), 0 === e && (i = i - x.size / 2 - t), Math.abs(i) < .001 && (i = 0), a % x.params.slidesPerGroup == 0 && x.snapGrid.push(i), x.slidesGrid.push(i)) : (a % x.params.slidesPerGroup == 0 && x.snapGrid.push(i), x.slidesGrid.push(i), i = i + o + t), x.virtualSize += o + t, n = o, a++) }
                                if (x.virtualSize = Math.max(x.virtualSize, x.size) + x.params.slidesOffsetAfter, x.rtl && x.wrongRTL && ("slide" === x.params.effect || "coverflow" === x.params.effect) && x.wrapper.css({ width: x.virtualSize + x.params.spaceBetween + "px" }), x.support.flexbox && !x.params.setWrapperSize || (x.isHorizontal() ? x.wrapper.css({ width: x.virtualSize + x.params.spaceBetween + "px" }) : x.wrapper.css({ height: x.virtualSize + x.params.spaceBetween + "px" })), x.params.slidesPerColumn > 1 && (x.virtualSize = (o + x.params.spaceBetween) * r, x.virtualSize = Math.ceil(x.virtualSize / x.params.slidesPerColumn) - x.params.spaceBetween, x.isHorizontal() ? x.wrapper.css({ width: x.virtualSize + x.params.spaceBetween + "px" }) : x.wrapper.css({ height: x.virtualSize + x.params.spaceBetween + "px" }), x.params.centeredSlides)) {
                                    for (l = [], e = 0; e < x.snapGrid.length; e++) x.snapGrid[e] < x.virtualSize + x.snapGrid[0] && l.push(x.snapGrid[e]);
                                    x.snapGrid = l
                                }
                                if (!x.params.centeredSlides) {
                                    for (l = [], e = 0; e < x.snapGrid.length; e++) x.snapGrid[e] <= x.virtualSize - x.size && l.push(x.snapGrid[e]);
                                    x.snapGrid = l, Math.floor(x.virtualSize - x.size) - Math.floor(x.snapGrid[x.snapGrid.length - 1]) > 1 && x.snapGrid.push(x.virtualSize - x.size)
                                }
                                0 === x.snapGrid.length && (x.snapGrid = [0]), 0 !== x.params.spaceBetween && (x.isHorizontal() ? x.rtl ? x.slides.css({ marginLeft: t + "px" }) : x.slides.css({ marginRight: t + "px" }) : x.slides.css({ marginBottom: t + "px" })), x.params.watchSlidesProgress && x.updateSlidesOffset()
                            }
                        }, x.updateSlidesOffset = function() { for (var e = 0; e < x.slides.length; e++) x.slides[e].swiperSlideOffset = x.isHorizontal() ? x.slides[e].offsetLeft : x.slides[e].offsetTop }, x.currentSlidesPerView = function() {
                            var e, t, i = 1;
                            if (x.params.centeredSlides) { var n, a = x.slides[x.activeIndex].swiperSlideSize; for (e = x.activeIndex + 1; e < x.slides.length; e++) x.slides[e] && !n && (i++, (a += x.slides[e].swiperSlideSize) > x.size && (n = !0)); for (t = x.activeIndex - 1; t >= 0; t--) x.slides[t] && !n && (i++, (a += x.slides[t].swiperSlideSize) > x.size && (n = !0)) } else
                                for (e = x.activeIndex + 1; e < x.slides.length; e++) x.slidesGrid[e] - x.slidesGrid[x.activeIndex] < x.size && i++;
                            return i
                        }, x.updateSlidesProgress = function(e) {
                            if (void 0 === e && (e = x.translate || 0), 0 !== x.slides.length) {
                                void 0 === x.slides[0].swiperSlideOffset && x.updateSlidesOffset();
                                var t = -e;
                                x.rtl && (t = e), x.slides.removeClass(x.params.slideVisibleClass);
                                for (var i = 0; i < x.slides.length; i++) {
                                    var n = x.slides[i],
                                        a = (t + (x.params.centeredSlides ? x.minTranslate() : 0) - n.swiperSlideOffset) / (n.swiperSlideSize + x.params.spaceBetween);
                                    if (x.params.watchSlidesVisibility) {
                                        var r = -(t - n.swiperSlideOffset),
                                            s = r + x.slidesSizesGrid[i];
                                        (r >= 0 && r < x.size || s > 0 && s <= x.size || r <= 0 && s >= x.size) && x.slides.eq(i).addClass(x.params.slideVisibleClass)
                                    }
                                    n.progress = x.rtl ? -a : a
                                }
                            }
                        }, x.updateProgress = function(e) {
                            void 0 === e && (e = x.translate || 0);
                            var t = x.maxTranslate() - x.minTranslate(),
                                i = x.isBeginning,
                                n = x.isEnd;
                            0 === t ? (x.progress = 0, x.isBeginning = x.isEnd = !0) : (x.progress = (e - x.minTranslate()) / t, x.isBeginning = x.progress <= 0, x.isEnd = x.progress >= 1), x.isBeginning && !i && x.emit("onReachBeginning", x), x.isEnd && !n && x.emit("onReachEnd", x), x.params.watchSlidesProgress && x.updateSlidesProgress(e), x.emit("onProgress", x, x.progress)
                        }, x.updateActiveIndex = function() {
                            var e, t, i, n = x.rtl ? x.translate : -x.translate;
                            for (t = 0; t < x.slidesGrid.length; t++) void 0 !== x.slidesGrid[t + 1] ? n >= x.slidesGrid[t] && n < x.slidesGrid[t + 1] - (x.slidesGrid[t + 1] - x.slidesGrid[t]) / 2 ? e = t : n >= x.slidesGrid[t] && n < x.slidesGrid[t + 1] && (e = t + 1) : n >= x.slidesGrid[t] && (e = t);
                            x.params.normalizeSlideIndex && (e < 0 || void 0 === e) && (e = 0), (i = Math.floor(e / x.params.slidesPerGroup)) >= x.snapGrid.length && (i = x.snapGrid.length - 1), e !== x.activeIndex && (x.snapIndex = i, x.previousIndex = x.activeIndex, x.activeIndex = e, x.updateClasses(), x.updateRealIndex())
                        }, x.updateRealIndex = function() { x.realIndex = parseInt(x.slides.eq(x.activeIndex).attr("data-swiper-slide-index") || x.activeIndex, 10) }, x.updateClasses = function() {
                            x.slides.removeClass(x.params.slideActiveClass + " " + x.params.slideNextClass + " " + x.params.slidePrevClass + " " + x.params.slideDuplicateActiveClass + " " + x.params.slideDuplicateNextClass + " " + x.params.slideDuplicatePrevClass);
                            var t = x.slides.eq(x.activeIndex);
                            t.addClass(x.params.slideActiveClass), r.loop && (t.hasClass(x.params.slideDuplicateClass) ? x.wrapper.children("." + x.params.slideClass + ":not(." + x.params.slideDuplicateClass + ')[data-swiper-slide-index="' + x.realIndex + '"]').addClass(x.params.slideDuplicateActiveClass) : x.wrapper.children("." + x.params.slideClass + "." + x.params.slideDuplicateClass + '[data-swiper-slide-index="' + x.realIndex + '"]').addClass(x.params.slideDuplicateActiveClass));
                            var i = t.next("." + x.params.slideClass).addClass(x.params.slideNextClass);
                            x.params.loop && 0 === i.length && (i = x.slides.eq(0)).addClass(x.params.slideNextClass);
                            var n = t.prev("." + x.params.slideClass).addClass(x.params.slidePrevClass);
                            if (x.params.loop && 0 === n.length && (n = x.slides.eq(-1)).addClass(x.params.slidePrevClass), r.loop && (i.hasClass(x.params.slideDuplicateClass) ? x.wrapper.children("." + x.params.slideClass + ":not(." + x.params.slideDuplicateClass + ')[data-swiper-slide-index="' + i.attr("data-swiper-slide-index") + '"]').addClass(x.params.slideDuplicateNextClass) : x.wrapper.children("." + x.params.slideClass + "." + x.params.slideDuplicateClass + '[data-swiper-slide-index="' + i.attr("data-swiper-slide-index") + '"]').addClass(x.params.slideDuplicateNextClass), n.hasClass(x.params.slideDuplicateClass) ? x.wrapper.children("." + x.params.slideClass + ":not(." + x.params.slideDuplicateClass + ')[data-swiper-slide-index="' + n.attr("data-swiper-slide-index") + '"]').addClass(x.params.slideDuplicatePrevClass) : x.wrapper.children("." + x.params.slideClass + "." + x.params.slideDuplicateClass + '[data-swiper-slide-index="' + n.attr("data-swiper-slide-index") + '"]').addClass(x.params.slideDuplicatePrevClass)), x.paginationContainer && x.paginationContainer.length > 0) {
                                var a, s = x.params.loop ? Math.ceil((x.slides.length - 2 * x.loopedSlides) / x.params.slidesPerGroup) : x.snapGrid.length;
                                if (x.params.loop ? ((a = Math.ceil((x.activeIndex - x.loopedSlides) / x.params.slidesPerGroup)) > x.slides.length - 1 - 2 * x.loopedSlides && (a -= x.slides.length - 2 * x.loopedSlides), a > s - 1 && (a -= s), a < 0 && "bullets" !== x.params.paginationType && (a = s + a)) : a = void 0 !== x.snapIndex ? x.snapIndex : x.activeIndex || 0, "bullets" === x.params.paginationType && x.bullets && x.bullets.length > 0 && (x.bullets.removeClass(x.params.bulletActiveClass), x.paginationContainer.length > 1 ? x.bullets.each(function() { e(this).index() === a && e(this).addClass(x.params.bulletActiveClass) }) : x.bullets.eq(a).addClass(x.params.bulletActiveClass)), "fraction" === x.params.paginationType && (x.paginationContainer.find("." + x.params.paginationCurrentClass).text(a + 1), x.paginationContainer.find("." + x.params.paginationTotalClass).text(s)), "progress" === x.params.paginationType) {
                                    var o = (a + 1) / s,
                                        l = o,
                                        d = 1;
                                    x.isHorizontal() || (d = o, l = 1), x.paginationContainer.find("." + x.params.paginationProgressbarClass).transform("translate3d(0,0,0) scaleX(" + l + ") scaleY(" + d + ")").transition(x.params.speed)
                                }
                                "custom" === x.params.paginationType && x.params.paginationCustomRender && (x.paginationContainer.html(x.params.paginationCustomRender(x, a + 1, s)), x.emit("onPaginationRendered", x, x.paginationContainer[0]))
                            }
                            x.params.loop || (x.params.prevButton && x.prevButton && x.prevButton.length > 0 && (x.isBeginning ? (x.prevButton.addClass(x.params.buttonDisabledClass), x.params.a11y && x.a11y && x.a11y.disable(x.prevButton)) : (x.prevButton.removeClass(x.params.buttonDisabledClass), x.params.a11y && x.a11y && x.a11y.enable(x.prevButton))), x.params.nextButton && x.nextButton && x.nextButton.length > 0 && (x.isEnd ? (x.nextButton.addClass(x.params.buttonDisabledClass), x.params.a11y && x.a11y && x.a11y.disable(x.nextButton)) : (x.nextButton.removeClass(x.params.buttonDisabledClass), x.params.a11y && x.a11y && x.a11y.enable(x.nextButton))))
                        }, x.updatePagination = function() {
                            if (x.params.pagination && x.paginationContainer && x.paginationContainer.length > 0) {
                                var e = "";
                                if ("bullets" === x.params.paginationType) {
                                    for (var t = x.params.loop ? Math.ceil((x.slides.length - 2 * x.loopedSlides) / x.params.slidesPerGroup) : x.snapGrid.length, i = 0; i < t; i++) e += x.params.paginationBulletRender ? x.params.paginationBulletRender(x, i, x.params.bulletClass) : "<" + x.params.paginationElement + ' class="' + x.params.bulletClass + '"></' + x.params.paginationElement + ">";
                                    x.paginationContainer.html(e), x.bullets = x.paginationContainer.find("." + x.params.bulletClass), x.params.paginationClickable && x.params.a11y && x.a11y && x.a11y.initPagination()
                                }
                                "fraction" === x.params.paginationType && (e = x.params.paginationFractionRender ? x.params.paginationFractionRender(x, x.params.paginationCurrentClass, x.params.paginationTotalClass) : '<span class="' + x.params.paginationCurrentClass + '"></span> / <span class="' + x.params.paginationTotalClass + '"></span>', x.paginationContainer.html(e)), "progress" === x.params.paginationType && (e = x.params.paginationProgressRender ? x.params.paginationProgressRender(x, x.params.paginationProgressbarClass) : '<span class="' + x.params.paginationProgressbarClass + '"></span>', x.paginationContainer.html(e)), "custom" !== x.params.paginationType && x.emit("onPaginationRendered", x, x.paginationContainer[0])
                            }
                        }, x.update = function(e) {
                            function t() { x.rtl, x.translate, i = Math.min(Math.max(x.translate, x.maxTranslate()), x.minTranslate()), x.setWrapperTranslate(i), x.updateActiveIndex(), x.updateClasses() }
                            var i;
                            x && (x.updateContainerSize(), x.updateSlidesSize(), x.updateProgress(), x.updatePagination(), x.updateClasses(), x.params.scrollbar && x.scrollbar && x.scrollbar.set(), e ? (x.controller && x.controller.spline && (x.controller.spline = void 0), x.params.freeMode ? (t(), x.params.autoHeight && x.updateAutoHeight()) : (("auto" === x.params.slidesPerView || x.params.slidesPerView > 1) && x.isEnd && !x.params.centeredSlides ? x.slideTo(x.slides.length - 1, 0, !1, !0) : x.slideTo(x.activeIndex, 0, !1, !0)) || t()) : x.params.autoHeight && x.updateAutoHeight())
                        }, x.onResize = function(e) {
                            x.params.onBeforeResize && x.params.onBeforeResize(x), x.params.breakpoints && x.setBreakpoint();
                            var t = x.params.allowSwipeToPrev,
                                i = x.params.allowSwipeToNext;
                            x.params.allowSwipeToPrev = x.params.allowSwipeToNext = !0, x.updateContainerSize(), x.updateSlidesSize(), ("auto" === x.params.slidesPerView || x.params.freeMode || e) && x.updatePagination(), x.params.scrollbar && x.scrollbar && x.scrollbar.set(), x.controller && x.controller.spline && (x.controller.spline = void 0);
                            var n = !1;
                            if (x.params.freeMode) {
                                var a = Math.min(Math.max(x.translate, x.maxTranslate()), x.minTranslate());
                                x.setWrapperTranslate(a), x.updateActiveIndex(), x.updateClasses(), x.params.autoHeight && x.updateAutoHeight()
                            } else x.updateClasses(), n = ("auto" === x.params.slidesPerView || x.params.slidesPerView > 1) && x.isEnd && !x.params.centeredSlides ? x.slideTo(x.slides.length - 1, 0, !1, !0) : x.slideTo(x.activeIndex, 0, !1, !0);
                            x.params.lazyLoading && !n && x.lazy && x.lazy.load(), x.params.allowSwipeToPrev = t, x.params.allowSwipeToNext = i, x.params.onAfterResize && x.params.onAfterResize(x)
                        }, x.touchEventsDesktop = { start: "mousedown", move: "mousemove", end: "mouseup" }, window.navigator.pointerEnabled ? x.touchEventsDesktop = { start: "pointerdown", move: "pointermove", end: "pointerup" } : window.navigator.msPointerEnabled && (x.touchEventsDesktop = { start: "MSPointerDown", move: "MSPointerMove", end: "MSPointerUp" }), x.touchEvents = { start: x.support.touch || !x.params.simulateTouch ? "touchstart" : x.touchEventsDesktop.start, move: x.support.touch || !x.params.simulateTouch ? "touchmove" : x.touchEventsDesktop.move, end: x.support.touch || !x.params.simulateTouch ? "touchend" : x.touchEventsDesktop.end }, (window.navigator.pointerEnabled || window.navigator.msPointerEnabled) && ("container" === x.params.touchEventsTarget ? x.container : x.wrapper).addClass("swiper-wp8-" + x.params.direction), x.initEvents = function(e) {
                            var t = e ? "off" : "on",
                                i = e ? "removeEventListener" : "addEventListener",
                                n = "container" === x.params.touchEventsTarget ? x.container[0] : x.wrapper[0],
                                a = x.support.touch ? n : document,
                                s = !!x.params.nested;
                            if (x.browser.ie) n[i](x.touchEvents.start, x.onTouchStart, !1), a[i](x.touchEvents.move, x.onTouchMove, s), a[i](x.touchEvents.end, x.onTouchEnd, !1);
                            else {
                                if (x.support.touch) {
                                    var o = !("touchstart" !== x.touchEvents.start || !x.support.passiveListener || !x.params.passiveListeners) && { passive: !0, capture: !1 };
                                    n[i](x.touchEvents.start, x.onTouchStart, o), n[i](x.touchEvents.move, x.onTouchMove, s), n[i](x.touchEvents.end, x.onTouchEnd, o)
                                }(r.simulateTouch && !x.device.ios && !x.device.android || r.simulateTouch && !x.support.touch && x.device.ios) && (n[i]("mousedown", x.onTouchStart, !1), document[i]("mousemove", x.onTouchMove, s), document[i]("mouseup", x.onTouchEnd, !1))
                            }
                            window[i]("resize", x.onResize), x.params.nextButton && x.nextButton && x.nextButton.length > 0 && (x.nextButton[t]("click", x.onClickNext), x.params.a11y && x.a11y && x.nextButton[t]("keydown", x.a11y.onEnterKey)), x.params.prevButton && x.prevButton && x.prevButton.length > 0 && (x.prevButton[t]("click", x.onClickPrev), x.params.a11y && x.a11y && x.prevButton[t]("keydown", x.a11y.onEnterKey)), x.params.pagination && x.params.paginationClickable && (x.paginationContainer[t]("click", "." + x.params.bulletClass, x.onClickIndex), x.params.a11y && x.a11y && x.paginationContainer[t]("keydown", "." + x.params.bulletClass, x.a11y.onEnterKey)), (x.params.preventClicks || x.params.preventClicksPropagation) && n[i]("click", x.preventClicks, !0)
                        }, x.attachEvents = function() { x.initEvents() }, x.detachEvents = function() { x.initEvents(!0) }, x.allowClick = !0, x.preventClicks = function(e) { x.allowClick || (x.params.preventClicks && e.preventDefault(), x.params.preventClicksPropagation && x.animating && (e.stopPropagation(), e.stopImmediatePropagation())) }, x.onClickNext = function(e) { e.preventDefault(), x.isEnd && !x.params.loop || x.slideNext() }, x.onClickPrev = function(e) { e.preventDefault(), x.isBeginning && !x.params.loop || x.slidePrev() }, x.onClickIndex = function(t) {
                            t.preventDefault();
                            var i = e(this).index() * x.params.slidesPerGroup;
                            x.params.loop && (i += x.loopedSlides), x.slideTo(i)
                        }, x.updateClickedSlide = function(t) {
                            var i = l(t, "." + x.params.slideClass),
                                n = !1;
                            if (i)
                                for (var a = 0; a < x.slides.length; a++) x.slides[a] === i && (n = !0);
                            if (!i || !n) return x.clickedSlide = void 0, void(x.clickedIndex = void 0);
                            if (x.clickedSlide = i, x.clickedIndex = e(i).index(), x.params.slideToClickedSlide && void 0 !== x.clickedIndex && x.clickedIndex !== x.activeIndex) {
                                var r, s = x.clickedIndex,
                                    o = "auto" === x.params.slidesPerView ? x.currentSlidesPerView() : x.params.slidesPerView;
                                if (x.params.loop) {
                                    if (x.animating) return;
                                    r = parseInt(e(x.clickedSlide).attr("data-swiper-slide-index"), 10), x.params.centeredSlides ? s < x.loopedSlides - o / 2 || s > x.slides.length - x.loopedSlides + o / 2 ? (x.fixLoop(), s = x.wrapper.children("." + x.params.slideClass + '[data-swiper-slide-index="' + r + '"]:not(.' + x.params.slideDuplicateClass + ")").eq(0).index(), setTimeout(function() { x.slideTo(s) }, 0)) : x.slideTo(s) : s > x.slides.length - o ? (x.fixLoop(), s = x.wrapper.children("." + x.params.slideClass + '[data-swiper-slide-index="' + r + '"]:not(.' + x.params.slideDuplicateClass + ")").eq(0).index(), setTimeout(function() { x.slideTo(s) }, 0)) : x.slideTo(s)
                                } else x.slideTo(s)
                            }
                        };
                        var S, C, E, A, M, P, k, z, I, D, L, B, N = "input, select, textarea, button, video",
                            O = Date.now(),
                            H = [];
                        for (var R in x.animating = !1, x.touches = { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 }, x.onTouchStart = function(t) {
                                if (t.originalEvent && (t = t.originalEvent), (L = "touchstart" === t.type) || !("which" in t) || 3 !== t.which) {
                                    if (x.params.noSwiping && l(t, "." + x.params.noSwipingClass)) return void(x.allowClick = !0);
                                    if (!x.params.swipeHandler || l(t, x.params.swipeHandler)) {
                                        var i = x.touches.currentX = "touchstart" === t.type ? t.targetTouches[0].pageX : t.pageX,
                                            n = x.touches.currentY = "touchstart" === t.type ? t.targetTouches[0].pageY : t.pageY;
                                        if (!(x.device.ios && x.params.iOSEdgeSwipeDetection && i <= x.params.iOSEdgeSwipeThreshold)) {
                                            if (S = !0, C = !1, E = !0, M = void 0, B = void 0, x.touches.startX = i, x.touches.startY = n, A = Date.now(), x.allowClick = !0, x.updateContainerSize(), x.swipeDirection = void 0, x.params.threshold > 0 && (z = !1), "touchstart" !== t.type) {
                                                var a = !0;
                                                e(t.target).is(N) && (a = !1), document.activeElement && e(document.activeElement).is(N) && document.activeElement.blur(), a && t.preventDefault()
                                            }
                                            x.emit("onTouchStart", x, t)
                                        }
                                    }
                                }
                            }, x.onTouchMove = function(t) {
                                if (t.originalEvent && (t = t.originalEvent), !L || "mousemove" !== t.type) {
                                    if (t.preventedByNestedSwiper) return x.touches.startX = "touchmove" === t.type ? t.targetTouches[0].pageX : t.pageX, void(x.touches.startY = "touchmove" === t.type ? t.targetTouches[0].pageY : t.pageY);
                                    if (x.params.onlyExternal) return x.allowClick = !1, void(S && (x.touches.startX = x.touches.currentX = "touchmove" === t.type ? t.targetTouches[0].pageX : t.pageX, x.touches.startY = x.touches.currentY = "touchmove" === t.type ? t.targetTouches[0].pageY : t.pageY, A = Date.now()));
                                    if (L && x.params.touchReleaseOnEdges && !x.params.loop)
                                        if (x.isHorizontal()) { if (x.touches.currentX < x.touches.startX && x.translate <= x.maxTranslate() || x.touches.currentX > x.touches.startX && x.translate >= x.minTranslate()) return } else if (x.touches.currentY < x.touches.startY && x.translate <= x.maxTranslate() || x.touches.currentY > x.touches.startY && x.translate >= x.minTranslate()) return;
                                    if (L && document.activeElement && t.target === document.activeElement && e(t.target).is(N)) return C = !0, void(x.allowClick = !1);
                                    if (E && x.emit("onTouchMove", x, t), !(t.targetTouches && t.targetTouches.length > 1)) {
                                        var i;
                                        if (x.touches.currentX = "touchmove" === t.type ? t.targetTouches[0].pageX : t.pageX, x.touches.currentY = "touchmove" === t.type ? t.targetTouches[0].pageY : t.pageY, void 0 === M) x.isHorizontal() && x.touches.currentY === x.touches.startY || !x.isHorizontal() && x.touches.currentX === x.touches.startX ? M = !1 : (i = 180 * Math.atan2(Math.abs(x.touches.currentY - x.touches.startY), Math.abs(x.touches.currentX - x.touches.startX)) / Math.PI, M = x.isHorizontal() ? i > x.params.touchAngle : 90 - i > x.params.touchAngle);
                                        if (M && x.emit("onTouchMoveOpposite", x, t), void 0 === B && (x.touches.currentX === x.touches.startX && x.touches.currentY === x.touches.startY || (B = !0)), S) {
                                            if (M) return void(S = !1);
                                            if (B) {
                                                x.allowClick = !1, x.emit("onSliderMove", x, t), t.preventDefault(), x.params.touchMoveStopPropagation && !x.params.nested && t.stopPropagation(), C || (r.loop && x.fixLoop(), k = x.getWrapperTranslate(), x.setWrapperTransition(0), x.animating && x.wrapper.trigger("webkitTransitionEnd transitionend oTransitionEnd MSTransitionEnd msTransitionEnd"), x.params.autoplay && x.autoplaying && (x.params.autoplayDisableOnInteraction ? x.stopAutoplay() : x.pauseAutoplay()), D = !1, !x.params.grabCursor || !0 !== x.params.allowSwipeToNext && !0 !== x.params.allowSwipeToPrev || x.setGrabCursor(!0)), C = !0;
                                                var n = x.touches.diff = x.isHorizontal() ? x.touches.currentX - x.touches.startX : x.touches.currentY - x.touches.startY;
                                                n *= x.params.touchRatio, x.rtl && (n = -n), x.swipeDirection = n > 0 ? "prev" : "next", P = n + k;
                                                var a = !0;
                                                if (n > 0 && P > x.minTranslate() ? (a = !1, x.params.resistance && (P = x.minTranslate() - 1 + Math.pow(-x.minTranslate() + k + n, x.params.resistanceRatio))) : n < 0 && P < x.maxTranslate() && (a = !1, x.params.resistance && (P = x.maxTranslate() + 1 - Math.pow(x.maxTranslate() - k - n, x.params.resistanceRatio))), a && (t.preventedByNestedSwiper = !0), !x.params.allowSwipeToNext && "next" === x.swipeDirection && P < k && (P = k), !x.params.allowSwipeToPrev && "prev" === x.swipeDirection && P > k && (P = k), x.params.threshold > 0) { if (!(Math.abs(n) > x.params.threshold || z)) return void(P = k); if (!z) return z = !0, x.touches.startX = x.touches.currentX, x.touches.startY = x.touches.currentY, P = k, void(x.touches.diff = x.isHorizontal() ? x.touches.currentX - x.touches.startX : x.touches.currentY - x.touches.startY) }
                                                x.params.followFinger && ((x.params.freeMode || x.params.watchSlidesProgress) && x.updateActiveIndex(), x.params.freeMode && (0 === H.length && H.push({ position: x.touches[x.isHorizontal() ? "startX" : "startY"], time: A }), H.push({ position: x.touches[x.isHorizontal() ? "currentX" : "currentY"], time: (new window.Date).getTime() })), x.updateProgress(P), x.setWrapperTranslate(P))
                                            }
                                        }
                                    }
                                }
                            }, x.onTouchEnd = function(t) {
                                if (t.originalEvent && (t = t.originalEvent), E && x.emit("onTouchEnd", x, t), E = !1, S) {
                                    x.params.grabCursor && C && S && (!0 === x.params.allowSwipeToNext || !0 === x.params.allowSwipeToPrev) && x.setGrabCursor(!1);
                                    var i, n = Date.now(),
                                        a = n - A;
                                    if (x.allowClick && (x.updateClickedSlide(t), x.emit("onTap", x, t), a < 300 && n - O > 300 && (I && clearTimeout(I), I = setTimeout(function() { x && (x.params.paginationHide && x.paginationContainer.length > 0 && !e(t.target).hasClass(x.params.bulletClass) && x.paginationContainer.toggleClass(x.params.paginationHiddenClass), x.emit("onClick", x, t)) }, 300)), a < 300 && n - O < 300 && (I && clearTimeout(I), x.emit("onDoubleTap", x, t))), O = Date.now(), setTimeout(function() { x && (x.allowClick = !0) }, 0), !S || !C || !x.swipeDirection || 0 === x.touches.diff || P === k) return void(S = C = !1);
                                    if (S = C = !1, i = x.params.followFinger ? x.rtl ? x.translate : -x.translate : -P, x.params.freeMode) {
                                        if (i < -x.minTranslate()) return void x.slideTo(x.activeIndex);
                                        if (i > -x.maxTranslate()) return void(x.slides.length < x.snapGrid.length ? x.slideTo(x.snapGrid.length - 1) : x.slideTo(x.slides.length - 1));
                                        if (x.params.freeModeMomentum) {
                                            if (H.length > 1) {
                                                var r = H.pop(),
                                                    s = H.pop(),
                                                    o = r.position - s.position,
                                                    l = r.time - s.time;
                                                x.velocity = o / l, x.velocity = x.velocity / 2, Math.abs(x.velocity) < x.params.freeModeMinimumVelocity && (x.velocity = 0), (l > 150 || (new window.Date).getTime() - r.time > 300) && (x.velocity = 0)
                                            } else x.velocity = 0;
                                            x.velocity = x.velocity * x.params.freeModeMomentumVelocityRatio, H.length = 0;
                                            var d = 1e3 * x.params.freeModeMomentumRatio,
                                                c = x.velocity * d,
                                                u = x.translate + c;
                                            x.rtl && (u = -u);
                                            var p, h = !1,
                                                f = 20 * Math.abs(x.velocity) * x.params.freeModeMomentumBounceRatio;
                                            if (u < x.maxTranslate()) x.params.freeModeMomentumBounce ? (u + x.maxTranslate() < -f && (u = x.maxTranslate() - f), p = x.maxTranslate(), h = !0, D = !0) : u = x.maxTranslate();
                                            else if (u > x.minTranslate()) x.params.freeModeMomentumBounce ? (u - x.minTranslate() > f && (u = x.minTranslate() + f), p = x.minTranslate(), h = !0, D = !0) : u = x.minTranslate();
                                            else if (x.params.freeModeSticky) {
                                                var m, g = 0;
                                                for (g = 0; g < x.snapGrid.length; g += 1)
                                                    if (x.snapGrid[g] > -u) { m = g; break }
                                                u = Math.abs(x.snapGrid[m] - u) < Math.abs(x.snapGrid[m - 1] - u) || "next" === x.swipeDirection ? x.snapGrid[m] : x.snapGrid[m - 1], x.rtl || (u = -u)
                                            }
                                            if (0 !== x.velocity) d = x.rtl ? Math.abs((-u - x.translate) / x.velocity) : Math.abs((u - x.translate) / x.velocity);
                                            else if (x.params.freeModeSticky) return void x.slideReset();
                                            x.params.freeModeMomentumBounce && h ? (x.updateProgress(p), x.setWrapperTransition(d), x.setWrapperTranslate(u), x.onTransitionStart(), x.animating = !0, x.wrapper.transitionEnd(function() { x && D && (x.emit("onMomentumBounce", x), x.setWrapperTransition(x.params.speed), x.setWrapperTranslate(p), x.wrapper.transitionEnd(function() { x && x.onTransitionEnd() })) })) : x.velocity ? (x.updateProgress(u), x.setWrapperTransition(d), x.setWrapperTranslate(u), x.onTransitionStart(), x.animating || (x.animating = !0, x.wrapper.transitionEnd(function() { x && x.onTransitionEnd() }))) : x.updateProgress(u), x.updateActiveIndex()
                                        }
                                        return void((!x.params.freeModeMomentum || a >= x.params.longSwipesMs) && (x.updateProgress(), x.updateActiveIndex()))
                                    }
                                    var v, y = 0,
                                        w = x.slidesSizesGrid[0];
                                    for (v = 0; v < x.slidesGrid.length; v += x.params.slidesPerGroup) void 0 !== x.slidesGrid[v + x.params.slidesPerGroup] ? i >= x.slidesGrid[v] && i < x.slidesGrid[v + x.params.slidesPerGroup] && (y = v, w = x.slidesGrid[v + x.params.slidesPerGroup] - x.slidesGrid[v]) : i >= x.slidesGrid[v] && (y = v, w = x.slidesGrid[x.slidesGrid.length - 1] - x.slidesGrid[x.slidesGrid.length - 2]);
                                    var b = (i - x.slidesGrid[y]) / w;
                                    if (a > x.params.longSwipesMs) { if (!x.params.longSwipes) return void x.slideTo(x.activeIndex); "next" === x.swipeDirection && (b >= x.params.longSwipesRatio ? x.slideTo(y + x.params.slidesPerGroup) : x.slideTo(y)), "prev" === x.swipeDirection && (b > 1 - x.params.longSwipesRatio ? x.slideTo(y + x.params.slidesPerGroup) : x.slideTo(y)) } else { if (!x.params.shortSwipes) return void x.slideTo(x.activeIndex); "next" === x.swipeDirection && x.slideTo(y + x.params.slidesPerGroup), "prev" === x.swipeDirection && x.slideTo(y) }
                                }
                            }, x._slideTo = function(e, t) { return x.slideTo(e, t, !0, !0) }, x.slideTo = function(e, t, i, n) {
                                void 0 === i && (i = !0), void 0 === e && (e = 0), e < 0 && (e = 0), x.snapIndex = Math.floor(e / x.params.slidesPerGroup), x.snapIndex >= x.snapGrid.length && (x.snapIndex = x.snapGrid.length - 1);
                                var a = -x.snapGrid[x.snapIndex];
                                if (x.params.autoplay && x.autoplaying && (n || !x.params.autoplayDisableOnInteraction ? x.pauseAutoplay(t) : x.stopAutoplay()), x.updateProgress(a), x.params.normalizeSlideIndex)
                                    for (var r = 0; r < x.slidesGrid.length; r++) - Math.floor(100 * a) >= Math.floor(100 * x.slidesGrid[r]) && (e = r);
                                return !(!x.params.allowSwipeToNext && a < x.translate && a < x.minTranslate() || !x.params.allowSwipeToPrev && a > x.translate && a > x.maxTranslate() && (x.activeIndex || 0) !== e || (void 0 === t && (t = x.params.speed), x.previousIndex = x.activeIndex || 0, x.activeIndex = e, x.updateRealIndex(), x.rtl && -a === x.translate || !x.rtl && a === x.translate ? (x.params.autoHeight && x.updateAutoHeight(), x.updateClasses(), "slide" !== x.params.effect && x.setWrapperTranslate(a), 1) : (x.updateClasses(), x.onTransitionStart(i), 0 === t || x.browser.lteIE9 ? (x.setWrapperTranslate(a), x.setWrapperTransition(0), x.onTransitionEnd(i)) : (x.setWrapperTranslate(a), x.setWrapperTransition(t), x.animating || (x.animating = !0, x.wrapper.transitionEnd(function() { x && x.onTransitionEnd(i) }))), 0)))
                            }, x.onTransitionStart = function(e) { void 0 === e && (e = !0), x.params.autoHeight && x.updateAutoHeight(), x.lazy && x.lazy.onTransitionStart(), e && (x.emit("onTransitionStart", x), x.activeIndex !== x.previousIndex && (x.emit("onSlideChangeStart", x), x.activeIndex > x.previousIndex ? x.emit("onSlideNextStart", x) : x.emit("onSlidePrevStart", x))) }, x.onTransitionEnd = function(e) { x.animating = !1, x.setWrapperTransition(0), void 0 === e && (e = !0), x.lazy && x.lazy.onTransitionEnd(), e && (x.emit("onTransitionEnd", x), x.activeIndex !== x.previousIndex && (x.emit("onSlideChangeEnd", x), x.activeIndex > x.previousIndex ? x.emit("onSlideNextEnd", x) : x.emit("onSlidePrevEnd", x))), x.params.history && x.history && x.history.setHistory(x.params.history, x.activeIndex), x.params.hashnav && x.hashnav && x.hashnav.setHash() }, x.slideNext = function(e, t, i) { return x.params.loop ? !x.animating && (x.fixLoop(), x.container[0].clientLeft, x.slideTo(x.activeIndex + x.params.slidesPerGroup, t, e, i)) : x.slideTo(x.activeIndex + x.params.slidesPerGroup, t, e, i) }, x._slideNext = function(e) { return x.slideNext(!0, e, !0) }, x.slidePrev = function(e, t, i) { return x.params.loop ? !x.animating && (x.fixLoop(), x.container[0].clientLeft, x.slideTo(x.activeIndex - 1, t, e, i)) : x.slideTo(x.activeIndex - 1, t, e, i) }, x._slidePrev = function(e) { return x.slidePrev(!0, e, !0) }, x.slideReset = function(e, t, i) { return x.slideTo(x.activeIndex, t, e) }, x.disableTouchControl = function() { return x.params.onlyExternal = !0, !0 }, x.enableTouchControl = function() { return x.params.onlyExternal = !1, !0 }, x.setWrapperTransition = function(e, t) { x.wrapper.transition(e), "slide" !== x.params.effect && x.effects[x.params.effect] && x.effects[x.params.effect].setTransition(e), x.params.parallax && x.parallax && x.parallax.setTransition(e), x.params.scrollbar && x.scrollbar && x.scrollbar.setTransition(e), x.params.control && x.controller && x.controller.setTransition(e, t), x.emit("onSetTransition", x, e) }, x.setWrapperTranslate = function(e, t, i) {
                                var n = 0,
                                    a = 0;
                                x.isHorizontal() ? n = x.rtl ? -e : e : a = e, x.params.roundLengths && (n = s(n), a = s(a)), x.params.virtualTranslate || (x.support.transforms3d ? x.wrapper.transform("translate3d(" + n + "px, " + a + "px, 0px)") : x.wrapper.transform("translate(" + n + "px, " + a + "px)")), x.translate = x.isHorizontal() ? n : a;
                                var r = x.maxTranslate() - x.minTranslate();
                                (0 === r ? 0 : (e - x.minTranslate()) / r) !== x.progress && x.updateProgress(e), t && x.updateActiveIndex(), "slide" !== x.params.effect && x.effects[x.params.effect] && x.effects[x.params.effect].setTranslate(x.translate), x.params.parallax && x.parallax && x.parallax.setTranslate(x.translate), x.params.scrollbar && x.scrollbar && x.scrollbar.setTranslate(x.translate), x.params.control && x.controller && x.controller.setTranslate(x.translate, i), x.emit("onSetTranslate", x, x.translate)
                            }, x.getTranslate = function(e, t) { var i, n, a, r; return void 0 === t && (t = "x"), x.params.virtualTranslate ? x.rtl ? -x.translate : x.translate : (a = window.getComputedStyle(e, null), window.WebKitCSSMatrix ? ((n = a.transform || a.webkitTransform).split(",").length > 6 && (n = n.split(", ").map(function(e) { return e.replace(",", ".") }).join(", ")), r = new window.WebKitCSSMatrix("none" === n ? "" : n)) : i = (r = a.MozTransform || a.OTransform || a.MsTransform || a.msTransform || a.transform || a.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,")).toString().split(","), "x" === t && (n = window.WebKitCSSMatrix ? r.m41 : 16 === i.length ? parseFloat(i[12]) : parseFloat(i[4])), "y" === t && (n = window.WebKitCSSMatrix ? r.m42 : 16 === i.length ? parseFloat(i[13]) : parseFloat(i[5])), x.rtl && n && (n = -n), n || 0) }, x.getWrapperTranslate = function(e) { return void 0 === e && (e = x.isHorizontal() ? "x" : "y"), x.getTranslate(x.wrapper[0], e) }, x.observers = [], x.initObservers = function() {
                                if (x.params.observeParents)
                                    for (var e = x.container.parents(), t = 0; t < e.length; t++) d(e[t]);
                                d(x.container[0], { childList: !1 }), d(x.wrapper[0], { attributes: !1 })
                            }, x.disconnectObservers = function() {
                                for (var e = 0; e < x.observers.length; e++) x.observers[e].disconnect();
                                x.observers = []
                            }, x.createLoop = function() {
                                x.wrapper.children("." + x.params.slideClass + "." + x.params.slideDuplicateClass).remove();
                                var t = x.wrapper.children("." + x.params.slideClass);
                                "auto" !== x.params.slidesPerView || x.params.loopedSlides || (x.params.loopedSlides = t.length), x.loopedSlides = parseInt(x.params.loopedSlides || x.params.slidesPerView, 10), x.loopedSlides = x.loopedSlides + x.params.loopAdditionalSlides, x.loopedSlides > t.length && (x.loopedSlides = t.length);
                                var i, n = [],
                                    a = [];
                                for (t.each(function(i, r) {
                                        var s = e(this);
                                        i < x.loopedSlides && a.push(r), i < t.length && i >= t.length - x.loopedSlides && n.push(r), s.attr("data-swiper-slide-index", i)
                                    }), i = 0; i < a.length; i++) x.wrapper.append(e(a[i].cloneNode(!0)).addClass(x.params.slideDuplicateClass));
                                for (i = n.length - 1; i >= 0; i--) x.wrapper.prepend(e(n[i].cloneNode(!0)).addClass(x.params.slideDuplicateClass))
                            }, x.destroyLoop = function() { x.wrapper.children("." + x.params.slideClass + "." + x.params.slideDuplicateClass).remove(), x.slides.removeAttr("data-swiper-slide-index") }, x.reLoop = function(e) {
                                var t = x.activeIndex - x.loopedSlides;
                                x.destroyLoop(), x.createLoop(), x.updateSlidesSize(), e && x.slideTo(t + x.loopedSlides, 0, !1)
                            }, x.fixLoop = function() {
                                var e;
                                x.activeIndex < x.loopedSlides ? (e = x.slides.length - 3 * x.loopedSlides + x.activeIndex, e += x.loopedSlides, x.slideTo(e, 0, !1, !0)) : ("auto" === x.params.slidesPerView && x.activeIndex >= 2 * x.loopedSlides || x.activeIndex > x.slides.length - 2 * x.params.slidesPerView) && (e = -x.slides.length + x.activeIndex + x.loopedSlides, e += x.loopedSlides, x.slideTo(e, 0, !1, !0))
                            }, x.appendSlide = function(e) {
                                if (x.params.loop && x.destroyLoop(), "object" == typeof e && e.length)
                                    for (var t = 0; t < e.length; t++) e[t] && x.wrapper.append(e[t]);
                                else x.wrapper.append(e);
                                x.params.loop && x.createLoop(), x.params.observer && x.support.observer || x.update(!0)
                            }, x.prependSlide = function(e) {
                                x.params.loop && x.destroyLoop();
                                var t = x.activeIndex + 1;
                                if ("object" == typeof e && e.length) {
                                    for (var i = 0; i < e.length; i++) e[i] && x.wrapper.prepend(e[i]);
                                    t = x.activeIndex + e.length
                                } else x.wrapper.prepend(e);
                                x.params.loop && x.createLoop(), x.params.observer && x.support.observer || x.update(!0), x.slideTo(t, 0, !1)
                            }, x.removeSlide = function(e) {
                                x.params.loop && (x.destroyLoop(), x.slides = x.wrapper.children("." + x.params.slideClass));
                                var t, i = x.activeIndex;
                                if ("object" == typeof e && e.length) {
                                    for (var n = 0; n < e.length; n++) t = e[n], x.slides[t] && x.slides.eq(t).remove(), t < i && i--;
                                    i = Math.max(i, 0)
                                } else t = e, x.slides[t] && x.slides.eq(t).remove(), t < i && i--, i = Math.max(i, 0);
                                x.params.loop && x.createLoop(), x.params.observer && x.support.observer || x.update(!0), x.params.loop ? x.slideTo(i + x.loopedSlides, 0, !1) : x.slideTo(i, 0, !1)
                            }, x.removeAllSlides = function() {
                                for (var e = [], t = 0; t < x.slides.length; t++) e.push(t);
                                x.removeSlide(e)
                            }, x.effects = {
                                fade: {
                                    setTranslate: function() {
                                        for (var e = 0; e < x.slides.length; e++) {
                                            var t = x.slides.eq(e),
                                                i = -t[0].swiperSlideOffset;
                                            x.params.virtualTranslate || (i -= x.translate);
                                            var n = 0;
                                            x.isHorizontal() || (n = i, i = 0);
                                            var a = x.params.fade.crossFade ? Math.max(1 - Math.abs(t[0].progress), 0) : 1 + Math.min(Math.max(t[0].progress, -1), 0);
                                            t.css({ opacity: a }).transform("translate3d(" + i + "px, " + n + "px, 0px)")
                                        }
                                    },
                                    setTransition: function(e) {
                                        if (x.slides.transition(e), x.params.virtualTranslate && 0 !== e) {
                                            var t = !1;
                                            x.slides.transitionEnd(function() { if (!t && x) { t = !0, x.animating = !1; for (var e = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"], i = 0; i < e.length; i++) x.wrapper.trigger(e[i]) } })
                                        }
                                    }
                                },
                                flip: {
                                    setTranslate: function() {
                                        for (var t = 0; t < x.slides.length; t++) {
                                            var i = x.slides.eq(t),
                                                n = i[0].progress;
                                            x.params.flip.limitRotation && (n = Math.max(Math.min(i[0].progress, 1), -1));
                                            var a = -180 * n,
                                                r = 0,
                                                s = -i[0].swiperSlideOffset,
                                                o = 0;
                                            if (x.isHorizontal() ? x.rtl && (a = -a) : (o = s, s = 0, r = -a, a = 0), i[0].style.zIndex = -Math.abs(Math.round(n)) + x.slides.length, x.params.flip.slideShadows) {
                                                var l = x.isHorizontal() ? i.find(".swiper-slide-shadow-left") : i.find(".swiper-slide-shadow-top"),
                                                    d = x.isHorizontal() ? i.find(".swiper-slide-shadow-right") : i.find(".swiper-slide-shadow-bottom");
                                                0 === l.length && (l = e('<div class="swiper-slide-shadow-' + (x.isHorizontal() ? "left" : "top") + '"></div>'), i.append(l)), 0 === d.length && (d = e('<div class="swiper-slide-shadow-' + (x.isHorizontal() ? "right" : "bottom") + '"></div>'), i.append(d)), l.length && (l[0].style.opacity = Math.max(-n, 0)), d.length && (d[0].style.opacity = Math.max(n, 0))
                                            }
                                            i.transform("translate3d(" + s + "px, " + o + "px, 0px) rotateX(" + r + "deg) rotateY(" + a + "deg)")
                                        }
                                    },
                                    setTransition: function(t) {
                                        if (x.slides.transition(t).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(t), x.params.virtualTranslate && 0 !== t) {
                                            var i = !1;
                                            x.slides.eq(x.activeIndex).transitionEnd(function() { if (!i && x && e(this).hasClass(x.params.slideActiveClass)) { i = !0, x.animating = !1; for (var t = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"], n = 0; n < t.length; n++) x.wrapper.trigger(t[n]) } })
                                        }
                                    }
                                },
                                cube: {
                                    setTranslate: function() {
                                        var t, i = 0;
                                        x.params.cube.shadow && (x.isHorizontal() ? (0 === (t = x.wrapper.find(".swiper-cube-shadow")).length && (t = e('<div class="swiper-cube-shadow"></div>'), x.wrapper.append(t)), t.css({ height: x.width + "px" })) : 0 === (t = x.container.find(".swiper-cube-shadow")).length && (t = e('<div class="swiper-cube-shadow"></div>'), x.container.append(t)));
                                        for (var n = 0; n < x.slides.length; n++) {
                                            var a = x.slides.eq(n),
                                                r = 90 * n,
                                                s = Math.floor(r / 360);
                                            x.rtl && (r = -r, s = Math.floor(-r / 360));
                                            var o = Math.max(Math.min(a[0].progress, 1), -1),
                                                l = 0,
                                                d = 0,
                                                c = 0;
                                            n % 4 == 0 ? (l = 4 * -s * x.size, c = 0) : (n - 1) % 4 == 0 ? (l = 0, c = 4 * -s * x.size) : (n - 2) % 4 == 0 ? (l = x.size + 4 * s * x.size, c = x.size) : (n - 3) % 4 == 0 && (l = -x.size, c = 3 * x.size + 4 * x.size * s), x.rtl && (l = -l), x.isHorizontal() || (d = l, l = 0);
                                            var u = "rotateX(" + (x.isHorizontal() ? 0 : -r) + "deg) rotateY(" + (x.isHorizontal() ? r : 0) + "deg) translate3d(" + l + "px, " + d + "px, " + c + "px)";
                                            if (o <= 1 && o > -1 && (i = 90 * n + 90 * o, x.rtl && (i = 90 * -n - 90 * o)), a.transform(u), x.params.cube.slideShadows) {
                                                var p = x.isHorizontal() ? a.find(".swiper-slide-shadow-left") : a.find(".swiper-slide-shadow-top"),
                                                    h = x.isHorizontal() ? a.find(".swiper-slide-shadow-right") : a.find(".swiper-slide-shadow-bottom");
                                                0 === p.length && (p = e('<div class="swiper-slide-shadow-' + (x.isHorizontal() ? "left" : "top") + '"></div>'), a.append(p)), 0 === h.length && (h = e('<div class="swiper-slide-shadow-' + (x.isHorizontal() ? "right" : "bottom") + '"></div>'), a.append(h)), p.length && (p[0].style.opacity = Math.max(-o, 0)), h.length && (h[0].style.opacity = Math.max(o, 0))
                                            }
                                        }
                                        if (x.wrapper.css({ "-webkit-transform-origin": "50% 50% -" + x.size / 2 + "px", "-moz-transform-origin": "50% 50% -" + x.size / 2 + "px", "-ms-transform-origin": "50% 50% -" + x.size / 2 + "px", "transform-origin": "50% 50% -" + x.size / 2 + "px" }), x.params.cube.shadow)
                                            if (x.isHorizontal()) t.transform("translate3d(0px, " + (x.width / 2 + x.params.cube.shadowOffset) + "px, " + -x.width / 2 + "px) rotateX(90deg) rotateZ(0deg) scale(" + x.params.cube.shadowScale + ")");
                                            else {
                                                var f = Math.abs(i) - 90 * Math.floor(Math.abs(i) / 90),
                                                    m = 1.5 - (Math.sin(2 * f * Math.PI / 360) / 2 + Math.cos(2 * f * Math.PI / 360) / 2),
                                                    g = x.params.cube.shadowScale,
                                                    v = x.params.cube.shadowScale / m,
                                                    y = x.params.cube.shadowOffset;
                                                t.transform("scale3d(" + g + ", 1, " + v + ") translate3d(0px, " + (x.height / 2 + y) + "px, " + -x.height / 2 / v + "px) rotateX(-90deg)")
                                            }
                                        var w = x.isSafari || x.isUiWebView ? -x.size / 2 : 0;
                                        x.wrapper.transform("translate3d(0px,0," + w + "px) rotateX(" + (x.isHorizontal() ? 0 : i) + "deg) rotateY(" + (x.isHorizontal() ? -i : 0) + "deg)")
                                    },
                                    setTransition: function(e) { x.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e), x.params.cube.shadow && !x.isHorizontal() && x.container.find(".swiper-cube-shadow").transition(e) }
                                },
                                coverflow: {
                                    setTranslate: function() {
                                        for (var t = x.translate, i = x.isHorizontal() ? -t + x.width / 2 : -t + x.height / 2, n = x.isHorizontal() ? x.params.coverflow.rotate : -x.params.coverflow.rotate, a = x.params.coverflow.depth, r = 0, s = x.slides.length; r < s; r++) {
                                            var o = x.slides.eq(r),
                                                l = x.slidesSizesGrid[r],
                                                d = (i - o[0].swiperSlideOffset - l / 2) / l * x.params.coverflow.modifier,
                                                c = x.isHorizontal() ? n * d : 0,
                                                u = x.isHorizontal() ? 0 : n * d,
                                                p = -a * Math.abs(d),
                                                h = x.isHorizontal() ? 0 : x.params.coverflow.stretch * d,
                                                f = x.isHorizontal() ? x.params.coverflow.stretch * d : 0;
                                            Math.abs(f) < .001 && (f = 0), Math.abs(h) < .001 && (h = 0), Math.abs(p) < .001 && (p = 0), Math.abs(c) < .001 && (c = 0), Math.abs(u) < .001 && (u = 0);
                                            var m = "translate3d(" + f + "px," + h + "px," + p + "px)  rotateX(" + u + "deg) rotateY(" + c + "deg)";
                                            if (o.transform(m), o[0].style.zIndex = 1 - Math.abs(Math.round(d)), x.params.coverflow.slideShadows) {
                                                var g = x.isHorizontal() ? o.find(".swiper-slide-shadow-left") : o.find(".swiper-slide-shadow-top"),
                                                    v = x.isHorizontal() ? o.find(".swiper-slide-shadow-right") : o.find(".swiper-slide-shadow-bottom");
                                                0 === g.length && (g = e('<div class="swiper-slide-shadow-' + (x.isHorizontal() ? "left" : "top") + '"></div>'), o.append(g)), 0 === v.length && (v = e('<div class="swiper-slide-shadow-' + (x.isHorizontal() ? "right" : "bottom") + '"></div>'), o.append(v)), g.length && (g[0].style.opacity = d > 0 ? d : 0), v.length && (v[0].style.opacity = -d > 0 ? -d : 0)
                                            }
                                        }
                                        x.browser.ie && (x.wrapper[0].style.perspectiveOrigin = i + "px 50%")
                                    },
                                    setTransition: function(e) { x.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e) }
                                }
                            }, x.lazy = {
                                initialImageLoaded: !1,
                                loadImageInSlide: function(t, i) {
                                    if (void 0 !== t && (void 0 === i && (i = !0), 0 !== x.slides.length)) {
                                        var n = x.slides.eq(t),
                                            a = n.find("." + x.params.lazyLoadingClass + ":not(." + x.params.lazyStatusLoadedClass + "):not(." + x.params.lazyStatusLoadingClass + ")");
                                        !n.hasClass(x.params.lazyLoadingClass) || n.hasClass(x.params.lazyStatusLoadedClass) || n.hasClass(x.params.lazyStatusLoadingClass) || (a = a.add(n[0])), 0 !== a.length && a.each(function() {
                                            var t = e(this);
                                            t.addClass(x.params.lazyStatusLoadingClass);
                                            var a = t.attr("data-background"),
                                                r = t.attr("data-src"),
                                                s = t.attr("data-srcset"),
                                                o = t.attr("data-sizes");
                                            x.loadImage(t[0], r || a, s, o, !1, function() {
                                                if (void 0 !== x && null !== x && x) {
                                                    if (a ? (t.css("background-image", 'url("' + a + '")'), t.removeAttr("data-background")) : (s && (t.attr("srcset", s), t.removeAttr("data-srcset")), o && (t.attr("sizes", o), t.removeAttr("data-sizes")), r && (t.attr("src", r), t.removeAttr("data-src"))), t.addClass(x.params.lazyStatusLoadedClass).removeClass(x.params.lazyStatusLoadingClass), n.find("." + x.params.lazyPreloaderClass + ", ." + x.params.preloaderClass).remove(), x.params.loop && i) {
                                                        var e = n.attr("data-swiper-slide-index");
                                                        if (n.hasClass(x.params.slideDuplicateClass)) {
                                                            var l = x.wrapper.children('[data-swiper-slide-index="' + e + '"]:not(.' + x.params.slideDuplicateClass + ")");
                                                            x.lazy.loadImageInSlide(l.index(), !1)
                                                        } else {
                                                            var d = x.wrapper.children("." + x.params.slideDuplicateClass + '[data-swiper-slide-index="' + e + '"]');
                                                            x.lazy.loadImageInSlide(d.index(), !1)
                                                        }
                                                    }
                                                    x.emit("onLazyImageReady", x, n[0], t[0])
                                                }
                                            }), x.emit("onLazyImageLoad", x, n[0], t[0])
                                        })
                                    }
                                },
                                load: function() {
                                    var t, i = x.params.slidesPerView;
                                    if ("auto" === i && (i = 0), x.lazy.initialImageLoaded || (x.lazy.initialImageLoaded = !0), x.params.watchSlidesVisibility) x.wrapper.children("." + x.params.slideVisibleClass).each(function() { x.lazy.loadImageInSlide(e(this).index()) });
                                    else if (i > 1)
                                        for (t = x.activeIndex; t < x.activeIndex + i; t++) x.slides[t] && x.lazy.loadImageInSlide(t);
                                    else x.lazy.loadImageInSlide(x.activeIndex);
                                    if (x.params.lazyLoadingInPrevNext)
                                        if (i > 1 || x.params.lazyLoadingInPrevNextAmount && x.params.lazyLoadingInPrevNextAmount > 1) {
                                            var n = x.params.lazyLoadingInPrevNextAmount,
                                                a = i,
                                                r = Math.min(x.activeIndex + a + Math.max(n, a), x.slides.length),
                                                s = Math.max(x.activeIndex - Math.max(a, n), 0);
                                            for (t = x.activeIndex + i; t < r; t++) x.slides[t] && x.lazy.loadImageInSlide(t);
                                            for (t = s; t < x.activeIndex; t++) x.slides[t] && x.lazy.loadImageInSlide(t)
                                        } else {
                                            var o = x.wrapper.children("." + x.params.slideNextClass);
                                            o.length > 0 && x.lazy.loadImageInSlide(o.index());
                                            var l = x.wrapper.children("." + x.params.slidePrevClass);
                                            l.length > 0 && x.lazy.loadImageInSlide(l.index())
                                        }
                                },
                                onTransitionStart: function() { x.params.lazyLoading && (x.params.lazyLoadingOnTransitionStart || !x.params.lazyLoadingOnTransitionStart && !x.lazy.initialImageLoaded) && x.lazy.load() },
                                onTransitionEnd: function() { x.params.lazyLoading && !x.params.lazyLoadingOnTransitionStart && x.lazy.load() }
                            }, x.scrollbar = {
                                isTouched: !1,
                                setDragPosition: function(e) {
                                    var t = x.scrollbar,
                                        i = (x.isHorizontal() ? "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX || e.clientX : "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY || e.clientY) - t.track.offset()[x.isHorizontal() ? "left" : "top"] - t.dragSize / 2,
                                        n = -x.minTranslate() * t.moveDivider,
                                        a = -x.maxTranslate() * t.moveDivider;
                                    i < n ? i = n : i > a && (i = a), i = -i / t.moveDivider, x.updateProgress(i), x.setWrapperTranslate(i, !0)
                                },
                                dragStart: function(e) {
                                    var t = x.scrollbar;
                                    t.isTouched = !0, e.preventDefault(), e.stopPropagation(), t.setDragPosition(e), clearTimeout(t.dragTimeout), t.track.transition(0), x.params.scrollbarHide && t.track.css("opacity", 1), x.wrapper.transition(100), t.drag.transition(100), x.emit("onScrollbarDragStart", x)
                                },
                                dragMove: function(e) {
                                    var t = x.scrollbar;
                                    t.isTouched && (e.preventDefault ? e.preventDefault() : e.returnValue = !1, t.setDragPosition(e), x.wrapper.transition(0), t.track.transition(0), t.drag.transition(0), x.emit("onScrollbarDragMove", x))
                                },
                                dragEnd: function(e) {
                                    var t = x.scrollbar;
                                    t.isTouched && (t.isTouched = !1, x.params.scrollbarHide && (clearTimeout(t.dragTimeout), t.dragTimeout = setTimeout(function() { t.track.css("opacity", 0), t.track.transition(400) }, 1e3)), x.emit("onScrollbarDragEnd", x), x.params.scrollbarSnapOnRelease && x.slideReset())
                                },
                                draggableEvents: !1 !== x.params.simulateTouch || x.support.touch ? x.touchEvents : x.touchEventsDesktop,
                                enableDraggable: function() {
                                    var t = x.scrollbar,
                                        i = x.support.touch ? t.track : document;
                                    e(t.track).on(t.draggableEvents.start, t.dragStart), e(i).on(t.draggableEvents.move, t.dragMove), e(i).on(t.draggableEvents.end, t.dragEnd)
                                },
                                disableDraggable: function() {
                                    var t = x.scrollbar,
                                        i = x.support.touch ? t.track : document;
                                    e(t.track).off(t.draggableEvents.start, t.dragStart), e(i).off(t.draggableEvents.move, t.dragMove), e(i).off(t.draggableEvents.end, t.dragEnd)
                                },
                                set: function() {
                                    if (x.params.scrollbar) {
                                        var t = x.scrollbar;
                                        t.track = e(x.params.scrollbar), x.params.uniqueNavElements && "string" == typeof x.params.scrollbar && t.track.length > 1 && 1 === x.container.find(x.params.scrollbar).length && (t.track = x.container.find(x.params.scrollbar)), t.drag = t.track.find(".swiper-scrollbar-drag"), 0 === t.drag.length && (t.drag = e('<div class="swiper-scrollbar-drag"></div>'), t.track.append(t.drag)), t.drag[0].style.width = "", t.drag[0].style.height = "", t.trackSize = x.isHorizontal() ? t.track[0].offsetWidth : t.track[0].offsetHeight, t.divider = x.size / x.virtualSize, t.moveDivider = t.divider * (t.trackSize / x.size), t.dragSize = t.trackSize * t.divider, x.isHorizontal() ? t.drag[0].style.width = t.dragSize + "px" : t.drag[0].style.height = t.dragSize + "px", t.divider >= 1 ? t.track[0].style.display = "none" : t.track[0].style.display = "", x.params.scrollbarHide && (t.track[0].style.opacity = 0)
                                    }
                                },
                                setTranslate: function() {
                                    if (x.params.scrollbar) {
                                        var e, t = x.scrollbar,
                                            i = (x.translate, t.dragSize);
                                        e = (t.trackSize - t.dragSize) * x.progress, x.rtl && x.isHorizontal() ? (e = -e) > 0 ? (i = t.dragSize - e, e = 0) : -e + t.dragSize > t.trackSize && (i = t.trackSize + e) : e < 0 ? (i = t.dragSize + e, e = 0) : e + t.dragSize > t.trackSize && (i = t.trackSize - e), x.isHorizontal() ? (x.support.transforms3d ? t.drag.transform("translate3d(" + e + "px, 0, 0)") : t.drag.transform("translateX(" + e + "px)"), t.drag[0].style.width = i + "px") : (x.support.transforms3d ? t.drag.transform("translate3d(0px, " + e + "px, 0)") : t.drag.transform("translateY(" + e + "px)"), t.drag[0].style.height = i + "px"), x.params.scrollbarHide && (clearTimeout(t.timeout), t.track[0].style.opacity = 1, t.timeout = setTimeout(function() { t.track[0].style.opacity = 0, t.track.transition(400) }, 1e3))
                                    }
                                },
                                setTransition: function(e) { x.params.scrollbar && x.scrollbar.drag.transition(e) }
                            }, x.controller = {
                                LinearSpline: function(e, t) {
                                    var i, n, a = function() { var e, t, i; return function(n, a) { for (t = -1, e = n.length; e - t > 1;) n[i = e + t >> 1] <= a ? t = i : e = i; return e } }();
                                    this.x = e, this.y = t, this.lastIndex = e.length - 1, this.x.length, this.interpolate = function(e) { return e ? (n = a(this.x, e), i = n - 1, (e - this.x[i]) * (this.y[n] - this.y[i]) / (this.x[n] - this.x[i]) + this.y[i]) : 0 }
                                },
                                getInterpolateFunction: function(e) { x.controller.spline || (x.controller.spline = x.params.loop ? new x.controller.LinearSpline(x.slidesGrid, e.slidesGrid) : new x.controller.LinearSpline(x.snapGrid, e.snapGrid)) },
                                setTranslate: function(e, t) {
                                    function i(t) { e = t.rtl && "horizontal" === t.params.direction ? -x.translate : x.translate, "slide" === x.params.controlBy && (x.controller.getInterpolateFunction(t), r = -x.controller.spline.interpolate(-e)), r && "container" !== x.params.controlBy || (a = (t.maxTranslate() - t.minTranslate()) / (x.maxTranslate() - x.minTranslate()), r = (e - x.minTranslate()) * a + t.minTranslate()), x.params.controlInverse && (r = t.maxTranslate() - r), t.updateProgress(r), t.setWrapperTranslate(r, !1, x), t.updateActiveIndex() }
                                    var a, r, s = x.params.control;
                                    if (Array.isArray(s))
                                        for (var o = 0; o < s.length; o++) s[o] !== t && s[o] instanceof n && i(s[o]);
                                    else s instanceof n && t !== s && i(s)
                                },
                                setTransition: function(e, t) {
                                    function i(t) { t.setWrapperTransition(e, x), 0 !== e && (t.onTransitionStart(), t.wrapper.transitionEnd(function() { r && (t.params.loop && "slide" === x.params.controlBy && t.fixLoop(), t.onTransitionEnd()) })) }
                                    var a, r = x.params.control;
                                    if (Array.isArray(r))
                                        for (a = 0; a < r.length; a++) r[a] !== t && r[a] instanceof n && i(r[a]);
                                    else r instanceof n && t !== r && i(r)
                                }
                            }, x.hashnav = {
                                onHashCange: function(e, t) {
                                    var i = document.location.hash.replace("#", "");
                                    i !== x.slides.eq(x.activeIndex).attr("data-hash") && x.slideTo(x.wrapper.children("." + x.params.slideClass + '[data-hash="' + i + '"]').index())
                                },
                                attachEvents: function(t) {
                                    var i = t ? "off" : "on";
                                    e(window)[i]("hashchange", x.hashnav.onHashCange)
                                },
                                setHash: function() {
                                    if (x.hashnav.initialized && x.params.hashnav)
                                        if (x.params.replaceState && window.history && window.history.replaceState) window.history.replaceState(null, null, "#" + x.slides.eq(x.activeIndex).attr("data-hash") || "");
                                        else {
                                            var e = x.slides.eq(x.activeIndex),
                                                t = e.attr("data-hash") || e.attr("data-history");
                                            document.location.hash = t || ""
                                        }
                                },
                                init: function() {
                                    if (x.params.hashnav && !x.params.history) {
                                        x.hashnav.initialized = !0;
                                        var e = document.location.hash.replace("#", "");
                                        if (e)
                                            for (var t = 0, i = x.slides.length; t < i; t++) {
                                                var n = x.slides.eq(t);
                                                if ((n.attr("data-hash") || n.attr("data-history")) === e && !n.hasClass(x.params.slideDuplicateClass)) {
                                                    var a = n.index();
                                                    x.slideTo(a, 0, x.params.runCallbacksOnInit, !0)
                                                }
                                            }
                                        x.params.hashnavWatchState && x.hashnav.attachEvents()
                                    }
                                },
                                destroy: function() { x.params.hashnavWatchState && x.hashnav.attachEvents(!0) }
                            }, x.history = {
                                init: function() {
                                    if (x.params.history) {
                                        if (!window.history || !window.history.pushState) return x.params.history = !1, void(x.params.hashnav = !0);
                                        x.history.initialized = !0, this.paths = this.getPathValues(), (this.paths.key || this.paths.value) && (this.scrollToSlide(0, this.paths.value, x.params.runCallbacksOnInit), x.params.replaceState || window.addEventListener("popstate", this.setHistoryPopState))
                                    }
                                },
                                setHistoryPopState: function() { x.history.paths = x.history.getPathValues(), x.history.scrollToSlide(x.params.speed, x.history.paths.value, !1) },
                                getPathValues: function() {
                                    var e = window.location.pathname.slice(1).split("/"),
                                        t = e.length;
                                    return { key: e[t - 2], value: e[t - 1] }
                                },
                                setHistory: function(e, t) {
                                    if (x.history.initialized && x.params.history) {
                                        var i = x.slides.eq(t),
                                            n = this.slugify(i.attr("data-history"));
                                        window.location.pathname.includes(e) || (n = e + "/" + n), x.params.replaceState ? window.history.replaceState(null, null, n) : window.history.pushState(null, null, n)
                                    }
                                },
                                slugify: function(e) { return e.toString().toLowerCase().replace(/\s+/g, "-").replace(/[^\w\-]+/g, "").replace(/\-\-+/g, "-").replace(/^-+/, "").replace(/-+$/, "") },
                                scrollToSlide: function(e, t, i) {
                                    if (t)
                                        for (var n = 0, a = x.slides.length; n < a; n++) {
                                            var r = x.slides.eq(n);
                                            if (this.slugify(r.attr("data-history")) === t && !r.hasClass(x.params.slideDuplicateClass)) {
                                                var s = r.index();
                                                x.slideTo(s, e, i)
                                            }
                                        } else x.slideTo(0, e, i)
                                }
                            }, x.disableKeyboardControl = function() { x.params.keyboardControl = !1, e(document).off("keydown", c) }, x.enableKeyboardControl = function() { x.params.keyboardControl = !0, e(document).on("keydown", c) }, x.mousewheel = { event: !1, lastScrollTime: (new window.Date).getTime() }, x.params.mousewheelControl && (x.mousewheel.event = navigator.userAgent.indexOf("firefox") > -1 ? "DOMMouseScroll" : function() {
                                var e = "onwheel" in document;
                                if (!e) {
                                    var t = document.createElement("div");
                                    t.setAttribute("onwheel", "return;"), e = "function" == typeof t.onwheel
                                }
                                return !e && document.implementation && document.implementation.hasFeature && !0 !== document.implementation.hasFeature("", "") && (e = document.implementation.hasFeature("Events.wheel", "3.0")), e
                            }() ? "wheel" : "mousewheel"), x.disableMousewheelControl = function() { if (!x.mousewheel.event) return !1; var t = x.container; return "container" !== x.params.mousewheelEventsTarged && (t = e(x.params.mousewheelEventsTarged)), t.off(x.mousewheel.event, u), x.params.mousewheelControl = !1, !0 }, x.enableMousewheelControl = function() { if (!x.mousewheel.event) return !1; var t = x.container; return "container" !== x.params.mousewheelEventsTarged && (t = e(x.params.mousewheelEventsTarged)), t.on(x.mousewheel.event, u), x.params.mousewheelControl = !0, !0 }, x.parallax = {
                                setTranslate: function() {
                                    x.container.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function() { p(this, x.progress) }), x.slides.each(function() {
                                        var t = e(this);
                                        t.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function() { p(this, Math.min(Math.max(t[0].progress, -1), 1)) })
                                    })
                                },
                                setTransition: function(t) {
                                    void 0 === t && (t = x.params.speed), x.container.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function() {
                                        var i = e(this),
                                            n = parseInt(i.attr("data-swiper-parallax-duration"), 10) || t;
                                        0 === t && (n = 0), i.transition(n)
                                    })
                                }
                            }, x.zoom = {
                                scale: 1,
                                currentScale: 1,
                                isScaling: !1,
                                gesture: { slide: void 0, slideWidth: void 0, slideHeight: void 0, image: void 0, imageWrap: void 0, zoomMax: x.params.zoomMax },
                                image: { isTouched: void 0, isMoved: void 0, currentX: void 0, currentY: void 0, minX: void 0, minY: void 0, maxX: void 0, maxY: void 0, width: void 0, height: void 0, startX: void 0, startY: void 0, touchesStart: {}, touchesCurrent: {} },
                                velocity: { x: void 0, y: void 0, prevPositionX: void 0, prevPositionY: void 0, prevTime: void 0 },
                                getDistanceBetweenTouches: function(e) {
                                    if (e.targetTouches.length < 2) return 1;
                                    var t = e.targetTouches[0].pageX,
                                        i = e.targetTouches[0].pageY,
                                        n = e.targetTouches[1].pageX,
                                        a = e.targetTouches[1].pageY;
                                    return Math.sqrt(Math.pow(n - t, 2) + Math.pow(a - i, 2))
                                },
                                onGestureStart: function(t) {
                                    var i = x.zoom;
                                    if (!x.support.gestures) {
                                        if ("touchstart" !== t.type || "touchstart" === t.type && t.targetTouches.length < 2) return;
                                        i.gesture.scaleStart = i.getDistanceBetweenTouches(t)
                                    }
                                    i.gesture.slide && i.gesture.slide.length || (i.gesture.slide = e(this), 0 === i.gesture.slide.length && (i.gesture.slide = x.slides.eq(x.activeIndex)), i.gesture.image = i.gesture.slide.find("img, svg, canvas"), i.gesture.imageWrap = i.gesture.image.parent("." + x.params.zoomContainerClass), i.gesture.zoomMax = i.gesture.imageWrap.attr("data-swiper-zoom") || x.params.zoomMax, 0 !== i.gesture.imageWrap.length) ? (i.gesture.image.transition(0), i.isScaling = !0) : i.gesture.image = void 0
                                },
                                onGestureChange: function(e) {
                                    var t = x.zoom;
                                    if (!x.support.gestures) {
                                        if ("touchmove" !== e.type || "touchmove" === e.type && e.targetTouches.length < 2) return;
                                        t.gesture.scaleMove = t.getDistanceBetweenTouches(e)
                                    }
                                    t.gesture.image && 0 !== t.gesture.image.length && (x.support.gestures ? t.scale = e.scale * t.currentScale : t.scale = t.gesture.scaleMove / t.gesture.scaleStart * t.currentScale, t.scale > t.gesture.zoomMax && (t.scale = t.gesture.zoomMax - 1 + Math.pow(t.scale - t.gesture.zoomMax + 1, .5)), t.scale < x.params.zoomMin && (t.scale = x.params.zoomMin + 1 - Math.pow(x.params.zoomMin - t.scale + 1, .5)), t.gesture.image.transform("translate3d(0,0,0) scale(" + t.scale + ")"))
                                },
                                onGestureEnd: function(e) { var t = x.zoom;!x.support.gestures && ("touchend" !== e.type || "touchend" === e.type && e.changedTouches.length < 2) || t.gesture.image && 0 !== t.gesture.image.length && (t.scale = Math.max(Math.min(t.scale, t.gesture.zoomMax), x.params.zoomMin), t.gesture.image.transition(x.params.speed).transform("translate3d(0,0,0) scale(" + t.scale + ")"), t.currentScale = t.scale, t.isScaling = !1, 1 === t.scale && (t.gesture.slide = void 0)) },
                                onTouchStart: function(e, t) {
                                    var i = e.zoom;
                                    i.gesture.image && 0 !== i.gesture.image.length && (i.image.isTouched || ("android" === e.device.os && t.preventDefault(), i.image.isTouched = !0, i.image.touchesStart.x = "touchstart" === t.type ? t.targetTouches[0].pageX : t.pageX, i.image.touchesStart.y = "touchstart" === t.type ? t.targetTouches[0].pageY : t.pageY))
                                },
                                onTouchMove: function(e) {
                                    var t = x.zoom;
                                    if (t.gesture.image && 0 !== t.gesture.image.length && (x.allowClick = !1, t.image.isTouched && t.gesture.slide)) {
                                        t.image.isMoved || (t.image.width = t.gesture.image[0].offsetWidth, t.image.height = t.gesture.image[0].offsetHeight, t.image.startX = x.getTranslate(t.gesture.imageWrap[0], "x") || 0, t.image.startY = x.getTranslate(t.gesture.imageWrap[0], "y") || 0, t.gesture.slideWidth = t.gesture.slide[0].offsetWidth, t.gesture.slideHeight = t.gesture.slide[0].offsetHeight, t.gesture.imageWrap.transition(0), x.rtl && (t.image.startX = -t.image.startX), x.rtl && (t.image.startY = -t.image.startY));
                                        var i = t.image.width * t.scale,
                                            n = t.image.height * t.scale;
                                        if (!(i < t.gesture.slideWidth && n < t.gesture.slideHeight)) {
                                            if (t.image.minX = Math.min(t.gesture.slideWidth / 2 - i / 2, 0), t.image.maxX = -t.image.minX, t.image.minY = Math.min(t.gesture.slideHeight / 2 - n / 2, 0), t.image.maxY = -t.image.minY, t.image.touchesCurrent.x = "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX, t.image.touchesCurrent.y = "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY, !t.image.isMoved && !t.isScaling) { if (x.isHorizontal() && Math.floor(t.image.minX) === Math.floor(t.image.startX) && t.image.touchesCurrent.x < t.image.touchesStart.x || Math.floor(t.image.maxX) === Math.floor(t.image.startX) && t.image.touchesCurrent.x > t.image.touchesStart.x) return void(t.image.isTouched = !1); if (!x.isHorizontal() && Math.floor(t.image.minY) === Math.floor(t.image.startY) && t.image.touchesCurrent.y < t.image.touchesStart.y || Math.floor(t.image.maxY) === Math.floor(t.image.startY) && t.image.touchesCurrent.y > t.image.touchesStart.y) return void(t.image.isTouched = !1) }
                                            e.preventDefault(), e.stopPropagation(), t.image.isMoved = !0, t.image.currentX = t.image.touchesCurrent.x - t.image.touchesStart.x + t.image.startX, t.image.currentY = t.image.touchesCurrent.y - t.image.touchesStart.y + t.image.startY, t.image.currentX < t.image.minX && (t.image.currentX = t.image.minX + 1 - Math.pow(t.image.minX - t.image.currentX + 1, .8)), t.image.currentX > t.image.maxX && (t.image.currentX = t.image.maxX - 1 + Math.pow(t.image.currentX - t.image.maxX + 1, .8)), t.image.currentY < t.image.minY && (t.image.currentY = t.image.minY + 1 - Math.pow(t.image.minY - t.image.currentY + 1, .8)), t.image.currentY > t.image.maxY && (t.image.currentY = t.image.maxY - 1 + Math.pow(t.image.currentY - t.image.maxY + 1, .8)), t.velocity.prevPositionX || (t.velocity.prevPositionX = t.image.touchesCurrent.x), t.velocity.prevPositionY || (t.velocity.prevPositionY = t.image.touchesCurrent.y), t.velocity.prevTime || (t.velocity.prevTime = Date.now()), t.velocity.x = (t.image.touchesCurrent.x - t.velocity.prevPositionX) / (Date.now() - t.velocity.prevTime) / 2, t.velocity.y = (t.image.touchesCurrent.y - t.velocity.prevPositionY) / (Date.now() - t.velocity.prevTime) / 2, Math.abs(t.image.touchesCurrent.x - t.velocity.prevPositionX) < 2 && (t.velocity.x = 0), Math.abs(t.image.touchesCurrent.y - t.velocity.prevPositionY) < 2 && (t.velocity.y = 0), t.velocity.prevPositionX = t.image.touchesCurrent.x, t.velocity.prevPositionY = t.image.touchesCurrent.y, t.velocity.prevTime = Date.now(), t.gesture.imageWrap.transform("translate3d(" + t.image.currentX + "px, " + t.image.currentY + "px,0)")
                                        }
                                    }
                                },
                                onTouchEnd: function(e, t) {
                                    var i = e.zoom;
                                    if (i.gesture.image && 0 !== i.gesture.image.length) {
                                        if (!i.image.isTouched || !i.image.isMoved) return i.image.isTouched = !1, void(i.image.isMoved = !1);
                                        i.image.isTouched = !1, i.image.isMoved = !1;
                                        var n = 300,
                                            a = 300,
                                            r = i.velocity.x * n,
                                            s = i.image.currentX + r,
                                            o = i.velocity.y * a,
                                            l = i.image.currentY + o;
                                        0 !== i.velocity.x && (n = Math.abs((s - i.image.currentX) / i.velocity.x)), 0 !== i.velocity.y && (a = Math.abs((l - i.image.currentY) / i.velocity.y));
                                        var d = Math.max(n, a);
                                        i.image.currentX = s, i.image.currentY = l;
                                        var c = i.image.width * i.scale,
                                            u = i.image.height * i.scale;
                                        i.image.minX = Math.min(i.gesture.slideWidth / 2 - c / 2, 0), i.image.maxX = -i.image.minX, i.image.minY = Math.min(i.gesture.slideHeight / 2 - u / 2, 0), i.image.maxY = -i.image.minY, i.image.currentX = Math.max(Math.min(i.image.currentX, i.image.maxX), i.image.minX), i.image.currentY = Math.max(Math.min(i.image.currentY, i.image.maxY), i.image.minY), i.gesture.imageWrap.transition(d).transform("translate3d(" + i.image.currentX + "px, " + i.image.currentY + "px,0)")
                                    }
                                },
                                onTransitionEnd: function(e) {
                                    var t = e.zoom;
                                    t.gesture.slide && e.previousIndex !== e.activeIndex && (t.gesture.image.transform("translate3d(0,0,0) scale(1)"), t.gesture.imageWrap.transform("translate3d(0,0,0)"), t.gesture.slide = t.gesture.image = t.gesture.imageWrap = void 0, t.scale = t.currentScale = 1)
                                },
                                toggleZoom: function(t, i) {
                                    var n, a, r, s, o, l, d, c, u, p, h, f, m, g, v, y, w = t.zoom;
                                    (w.gesture.slide || (w.gesture.slide = t.clickedSlide ? e(t.clickedSlide) : t.slides.eq(t.activeIndex), w.gesture.image = w.gesture.slide.find("img, svg, canvas"), w.gesture.imageWrap = w.gesture.image.parent("." + t.params.zoomContainerClass)), w.gesture.image && 0 !== w.gesture.image.length) && (void 0 === w.image.touchesStart.x && i ? (n = "touchend" === i.type ? i.changedTouches[0].pageX : i.pageX, a = "touchend" === i.type ? i.changedTouches[0].pageY : i.pageY) : (n = w.image.touchesStart.x, a = w.image.touchesStart.y), w.scale && 1 !== w.scale ? (w.scale = w.currentScale = 1, w.gesture.imageWrap.transition(300).transform("translate3d(0,0,0)"), w.gesture.image.transition(300).transform("translate3d(0,0,0) scale(1)"), w.gesture.slide = void 0) : (w.scale = w.currentScale = w.gesture.imageWrap.attr("data-swiper-zoom") || t.params.zoomMax, i ? (v = w.gesture.slide[0].offsetWidth, y = w.gesture.slide[0].offsetHeight, r = w.gesture.slide.offset().left + v / 2 - n, s = w.gesture.slide.offset().top + y / 2 - a, d = w.gesture.image[0].offsetWidth, c = w.gesture.image[0].offsetHeight, u = d * w.scale, p = c * w.scale, m = -(h = Math.min(v / 2 - u / 2, 0)), g = -(f = Math.min(y / 2 - p / 2, 0)), o = r * w.scale, l = s * w.scale, o < h && (o = h), o > m && (o = m), l < f && (l = f), l > g && (l = g)) : (o = 0, l = 0), w.gesture.imageWrap.transition(300).transform("translate3d(" + o + "px, " + l + "px,0)"), w.gesture.image.transition(300).transform("translate3d(0,0,0) scale(" + w.scale + ")")))
                                },
                                attachEvents: function(t) {
                                    var i = t ? "off" : "on";
                                    if (x.params.zoom) {
                                        var n = (x.slides, !("touchstart" !== x.touchEvents.start || !x.support.passiveListener || !x.params.passiveListeners) && { passive: !0, capture: !1 });
                                        x.support.gestures ? (x.slides[i]("gesturestart", x.zoom.onGestureStart, n), x.slides[i]("gesturechange", x.zoom.onGestureChange, n), x.slides[i]("gestureend", x.zoom.onGestureEnd, n)) : "touchstart" === x.touchEvents.start && (x.slides[i](x.touchEvents.start, x.zoom.onGestureStart, n), x.slides[i](x.touchEvents.move, x.zoom.onGestureChange, n), x.slides[i](x.touchEvents.end, x.zoom.onGestureEnd, n)), x[i]("touchStart", x.zoom.onTouchStart), x.slides.each(function(t, n) { e(n).find("." + x.params.zoomContainerClass).length > 0 && e(n)[i](x.touchEvents.move, x.zoom.onTouchMove) }), x[i]("touchEnd", x.zoom.onTouchEnd), x[i]("transitionEnd", x.zoom.onTransitionEnd), x.params.zoomToggle && x.on("doubleTap", x.zoom.toggleZoom)
                                    }
                                },
                                init: function() { x.zoom.attachEvents() },
                                destroy: function() { x.zoom.attachEvents(!0) }
                            }, x._plugins = [], x.plugins) {
                            var $ = x.plugins[R](x, x.params[R]);
                            $ && x._plugins.push($)
                        }
                        return x.callPlugins = function(e) { for (var t = 0; t < x._plugins.length; t++) e in x._plugins[t] && x._plugins[t][e](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]) }, x.emitterEventListeners = {}, x.emit = function(e) {
                            var t;
                            if (x.params[e] && x.params[e](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]), x.emitterEventListeners[e])
                                for (t = 0; t < x.emitterEventListeners[e].length; t++) x.emitterEventListeners[e][t](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);
                            x.callPlugins && x.callPlugins(e, arguments[1], arguments[2], arguments[3], arguments[4], arguments[5])
                        }, x.on = function(e, t) { return e = h(e), x.emitterEventListeners[e] || (x.emitterEventListeners[e] = []), x.emitterEventListeners[e].push(t), x }, x.off = function(e, t) { var i; if (e = h(e), void 0 === t) return x.emitterEventListeners[e] = [], x; if (x.emitterEventListeners[e] && 0 !== x.emitterEventListeners[e].length) { for (i = 0; i < x.emitterEventListeners[e].length; i++) x.emitterEventListeners[e][i] === t && x.emitterEventListeners[e].splice(i, 1); return x } }, x.once = function(e, t) { e = h(e); var i = function() { t(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]), x.off(e, i) }; return x.on(e, i), x }, x.a11y = {
                            makeFocusable: function(e) { return e.attr("tabIndex", "0"), e },
                            addRole: function(e, t) { return e.attr("role", t), e },
                            addLabel: function(e, t) { return e.attr("aria-label", t), e },
                            disable: function(e) { return e.attr("aria-disabled", !0), e },
                            enable: function(e) { return e.attr("aria-disabled", !1), e },
                            onEnterKey: function(t) { 13 === t.keyCode && (e(t.target).is(x.params.nextButton) ? (x.onClickNext(t), x.isEnd ? x.a11y.notify(x.params.lastSlideMessage) : x.a11y.notify(x.params.nextSlideMessage)) : e(t.target).is(x.params.prevButton) && (x.onClickPrev(t), x.isBeginning ? x.a11y.notify(x.params.firstSlideMessage) : x.a11y.notify(x.params.prevSlideMessage)), e(t.target).is("." + x.params.bulletClass) && e(t.target)[0].click()) },
                            liveRegion: e('<span class="' + x.params.notificationClass + '" aria-live="assertive" aria-atomic="true"></span>'),
                            notify: function(e) {
                                var t = x.a11y.liveRegion;
                                0 !== t.length && (t.html(""), t.html(e))
                            },
                            init: function() { x.params.nextButton && x.nextButton && x.nextButton.length > 0 && (x.a11y.makeFocusable(x.nextButton), x.a11y.addRole(x.nextButton, "button"), x.a11y.addLabel(x.nextButton, x.params.nextSlideMessage)), x.params.prevButton && x.prevButton && x.prevButton.length > 0 && (x.a11y.makeFocusable(x.prevButton), x.a11y.addRole(x.prevButton, "button"), x.a11y.addLabel(x.prevButton, x.params.prevSlideMessage)), e(x.container).append(x.a11y.liveRegion) },
                            initPagination: function() {
                                x.params.pagination && x.params.paginationClickable && x.bullets && x.bullets.length && x.bullets.each(function() {
                                    var t = e(this);
                                    x.a11y.makeFocusable(t), x.a11y.addRole(t, "button"), x.a11y.addLabel(t, x.params.paginationBulletMessage.replace(/{{index}}/, t.index() + 1))
                                })
                            },
                            destroy: function() { x.a11y.liveRegion && x.a11y.liveRegion.length > 0 && x.a11y.liveRegion.remove() }
                        }, x.init = function() { x.params.loop && x.createLoop(), x.updateContainerSize(), x.updateSlidesSize(), x.updatePagination(), x.params.scrollbar && x.scrollbar && (x.scrollbar.set(), x.params.scrollbarDraggable && x.scrollbar.enableDraggable()), "slide" !== x.params.effect && x.effects[x.params.effect] && (x.params.loop || x.updateProgress(), x.effects[x.params.effect].setTranslate()), x.params.loop ? x.slideTo(x.params.initialSlide + x.loopedSlides, 0, x.params.runCallbacksOnInit) : (x.slideTo(x.params.initialSlide, 0, x.params.runCallbacksOnInit), 0 === x.params.initialSlide && (x.parallax && x.params.parallax && x.parallax.setTranslate(), x.lazy && x.params.lazyLoading && (x.lazy.load(), x.lazy.initialImageLoaded = !0))), x.attachEvents(), x.params.observer && x.support.observer && x.initObservers(), x.params.preloadImages && !x.params.lazyLoading && x.preloadImages(), x.params.zoom && x.zoom && x.zoom.init(), x.params.autoplay && x.startAutoplay(), x.params.keyboardControl && x.enableKeyboardControl && x.enableKeyboardControl(), x.params.mousewheelControl && x.enableMousewheelControl && x.enableMousewheelControl(), x.params.hashnavReplaceState && (x.params.replaceState = x.params.hashnavReplaceState), x.params.history && x.history && x.history.init(), x.params.hashnav && x.hashnav && x.hashnav.init(), x.params.a11y && x.a11y && x.a11y.init(), x.emit("onInit", x) }, x.cleanupStyles = function() { x.container.removeClass(x.classNames.join(" ")).removeAttr("style"), x.wrapper.removeAttr("style"), x.slides && x.slides.length && x.slides.removeClass([x.params.slideVisibleClass, x.params.slideActiveClass, x.params.slideNextClass, x.params.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-column").removeAttr("data-swiper-row"), x.paginationContainer && x.paginationContainer.length && x.paginationContainer.removeClass(x.params.paginationHiddenClass), x.bullets && x.bullets.length && x.bullets.removeClass(x.params.bulletActiveClass), x.params.prevButton && e(x.params.prevButton).removeClass(x.params.buttonDisabledClass), x.params.nextButton && e(x.params.nextButton).removeClass(x.params.buttonDisabledClass), x.params.scrollbar && x.scrollbar && (x.scrollbar.track && x.scrollbar.track.length && x.scrollbar.track.removeAttr("style"), x.scrollbar.drag && x.scrollbar.drag.length && x.scrollbar.drag.removeAttr("style")) }, x.destroy = function(e, t) { x.detachEvents(), x.stopAutoplay(), x.params.scrollbar && x.scrollbar && x.params.scrollbarDraggable && x.scrollbar.disableDraggable(), x.params.loop && x.destroyLoop(), t && x.cleanupStyles(), x.disconnectObservers(), x.params.zoom && x.zoom && x.zoom.destroy(), x.params.keyboardControl && x.disableKeyboardControl && x.disableKeyboardControl(), x.params.mousewheelControl && x.disableMousewheelControl && x.disableMousewheelControl(), x.params.a11y && x.a11y && x.a11y.destroy(), x.params.history && !x.params.replaceState && window.removeEventListener("popstate", x.history.setHistoryPopState), x.params.hashnav && x.hashnav && x.hashnav.destroy(), x.emit("onDestroy"), !1 !== e && (x = null) }, x.init(), x
                    }
                };
                n.prototype = {
                    isSafari: function() { var e = window.navigator.userAgent.toLowerCase(); return e.indexOf("safari") >= 0 && e.indexOf("chrome") < 0 && e.indexOf("android") < 0 }(),
                    isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),
                    isArray: function(e) { return "[object Array]" === Object.prototype.toString.apply(e) },
                    browser: { ie: window.navigator.pointerEnabled || window.navigator.msPointerEnabled, ieTouch: window.navigator.msPointerEnabled && window.navigator.msMaxTouchPoints > 1 || window.navigator.pointerEnabled && window.navigator.maxTouchPoints > 1, lteIE9: function() { var e = document.createElement("div"); return e.innerHTML = "\x3c!--[if lte IE 9]><i></i><![endif]--\x3e", 1 === e.getElementsByTagName("i").length }() },
                    device: function() {
                        var e = window.navigator.userAgent,
                            t = e.match(/(Android);?[\s\/]+([\d.]+)?/),
                            i = e.match(/(iPad).*OS\s([\d_]+)/),
                            n = e.match(/(iPod)(.*OS\s([\d_]+))?/),
                            a = !i && e.match(/(iPhone\sOS|iOS)\s([\d_]+)/);
                        return { ios: i || a || n, android: t }
                    }(),
                    support: {
                        touch: window.Modernizr && !0 === Modernizr.touch || !!("ontouchstart" in window || window.DocumentTouch && document instanceof DocumentTouch),
                        transforms3d: window.Modernizr && !0 === Modernizr.csstransforms3d || function() { var e = document.createElement("div").style; return "webkitPerspective" in e || "MozPerspective" in e || "OPerspective" in e || "MsPerspective" in e || "perspective" in e }(),
                        flexbox: function() {
                            for (var e = document.createElement("div").style, t = "alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient".split(" "), i = 0; i < t.length; i++)
                                if (t[i] in e) return !0
                        }(),
                        observer: "MutationObserver" in window || "WebkitMutationObserver" in window,
                        passiveListener: function() {
                            var e = !1;
                            try {
                                var t = Object.defineProperty({}, "passive", { get: function() { e = !0 } });
                                window.addEventListener("testPassiveListener", null, t)
                            } catch (e) {}
                            return e
                        }(),
                        gestures: "ongesturestart" in window
                    },
                    plugins: {}
                };
                for (var a = function() {
                        var e = function(e) { var t = 0; for (t = 0; t < e.length; t++) this[t] = e[t]; return this.length = e.length, this },
                            t = function(t, i) {
                                var n = [],
                                    a = 0;
                                if (t && !i && t instanceof e) return t;
                                if (t)
                                    if ("string" == typeof t) {
                                        var r, s, o = t.trim();
                                        if (o.indexOf("<") >= 0 && o.indexOf(">") >= 0) { var l = "div"; for (0 === o.indexOf("<li") && (l = "ul"), 0 === o.indexOf("<tr") && (l = "tbody"), 0 !== o.indexOf("<td") && 0 !== o.indexOf("<th") || (l = "tr"), 0 === o.indexOf("<tbody") && (l = "table"), 0 === o.indexOf("<option") && (l = "select"), (s = document.createElement(l)).innerHTML = t, a = 0; a < s.childNodes.length; a++) n.push(s.childNodes[a]) } else
                                            for (r = i || "#" !== t[0] || t.match(/[ .<>:~]/) ? (i || document).querySelectorAll(t) : [document.getElementById(t.split("#")[1])], a = 0; a < r.length; a++) r[a] && n.push(r[a])
                                    } else if (t.nodeType || t === window || t === document) n.push(t);
                                else if (t.length > 0 && t[0].nodeType)
                                    for (a = 0; a < t.length; a++) n.push(t[a]);
                                return new e(n)
                            };
                        return e.prototype = {
                            addClass: function(e) {
                                if (void 0 === e) return this;
                                for (var t = e.split(" "), i = 0; i < t.length; i++)
                                    for (var n = 0; n < this.length; n++) this[n].classList.add(t[i]);
                                return this
                            },
                            removeClass: function(e) {
                                for (var t = e.split(" "), i = 0; i < t.length; i++)
                                    for (var n = 0; n < this.length; n++) this[n].classList.remove(t[i]);
                                return this
                            },
                            hasClass: function(e) { return !!this[0] && this[0].classList.contains(e) },
                            toggleClass: function(e) {
                                for (var t = e.split(" "), i = 0; i < t.length; i++)
                                    for (var n = 0; n < this.length; n++) this[n].classList.toggle(t[i]);
                                return this
                            },
                            attr: function(e, t) {
                                if (1 === arguments.length && "string" == typeof e) return this[0] ? this[0].getAttribute(e) : void 0;
                                for (var i = 0; i < this.length; i++)
                                    if (2 === arguments.length) this[i].setAttribute(e, t);
                                    else
                                        for (var n in e) this[i][n] = e[n], this[i].setAttribute(n, e[n]);
                                return this
                            },
                            removeAttr: function(e) { for (var t = 0; t < this.length; t++) this[t].removeAttribute(e); return this },
                            data: function(e, t) {
                                if (void 0 !== t) {
                                    for (var i = 0; i < this.length; i++) {
                                        var n = this[i];
                                        n.dom7ElementDataStorage || (n.dom7ElementDataStorage = {}), n.dom7ElementDataStorage[e] = t
                                    }
                                    return this
                                }
                                if (this[0]) { var a = this[0].getAttribute("data-" + e); return a || (this[0].dom7ElementDataStorage && e in this[0].dom7ElementDataStorage ? this[0].dom7ElementDataStorage[e] : void 0) }
                            },
                            transform: function(e) {
                                for (var t = 0; t < this.length; t++) {
                                    var i = this[t].style;
                                    i.webkitTransform = i.MsTransform = i.msTransform = i.MozTransform = i.OTransform = i.transform = e
                                }
                                return this
                            },
                            transition: function(e) {
                                "string" != typeof e && (e += "ms");
                                for (var t = 0; t < this.length; t++) {
                                    var i = this[t].style;
                                    i.webkitTransitionDuration = i.MsTransitionDuration = i.msTransitionDuration = i.MozTransitionDuration = i.OTransitionDuration = i.transitionDuration = e
                                }
                                return this
                            },
                            on: function(e, i, n, a) {
                                function r(e) {
                                    var a = e.target;
                                    if (t(a).is(i)) n.call(a, e);
                                    else
                                        for (var r = t(a).parents(), s = 0; s < r.length; s++) t(r[s]).is(i) && n.call(r[s], e)
                                }
                                var s, o, l = e.split(" ");
                                for (s = 0; s < this.length; s++)
                                    if ("function" == typeof i || !1 === i)
                                        for ("function" == typeof i && (n = arguments[1], a = arguments[2] || !1), o = 0; o < l.length; o++) this[s].addEventListener(l[o], n, a);
                                    else
                                        for (o = 0; o < l.length; o++) this[s].dom7LiveListeners || (this[s].dom7LiveListeners = []), this[s].dom7LiveListeners.push({ listener: n, liveListener: r }), this[s].addEventListener(l[o], r, a);
                                return this
                            },
                            off: function(e, t, i, n) {
                                for (var a = e.split(" "), r = 0; r < a.length; r++)
                                    for (var s = 0; s < this.length; s++)
                                        if ("function" == typeof t || !1 === t) "function" == typeof t && (i = arguments[1], n = arguments[2] || !1), this[s].removeEventListener(a[r], i, n);
                                        else if (this[s].dom7LiveListeners)
                                    for (var o = 0; o < this[s].dom7LiveListeners.length; o++) this[s].dom7LiveListeners[o].listener === i && this[s].removeEventListener(a[r], this[s].dom7LiveListeners[o].liveListener, n);
                                return this
                            },
                            once: function(e, t, i, n) { var a = this; "function" == typeof t && (t = !1, i = arguments[1], n = arguments[2]), a.on(e, t, function r(s) { i(s), a.off(e, t, r, n) }, n) },
                            trigger: function(e, t) {
                                for (var i = 0; i < this.length; i++) {
                                    var n;
                                    try { n = new window.CustomEvent(e, { detail: t, bubbles: !0, cancelable: !0 }) } catch (i) {
                                        (n = document.createEvent("Event")).initEvent(e, !0, !0), n.detail = t
                                    }
                                    this[i].dispatchEvent(n)
                                }
                                return this
                            },
                            transitionEnd: function(e) {
                                function t(r) {
                                    if (r.target === this)
                                        for (e.call(this, r), i = 0; i < n.length; i++) a.off(n[i], t)
                                }
                                var i, n = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"],
                                    a = this;
                                if (e)
                                    for (i = 0; i < n.length; i++) a.on(n[i], t);
                                return this
                            },
                            width: function() { return this[0] === window ? window.innerWidth : this.length > 0 ? parseFloat(this.css("width")) : null },
                            outerWidth: function(e) { return this.length > 0 ? e ? this[0].offsetWidth + parseFloat(this.css("margin-right")) + parseFloat(this.css("margin-left")) : this[0].offsetWidth : null },
                            height: function() { return this[0] === window ? window.innerHeight : this.length > 0 ? parseFloat(this.css("height")) : null },
                            outerHeight: function(e) { return this.length > 0 ? e ? this[0].offsetHeight + parseFloat(this.css("margin-top")) + parseFloat(this.css("margin-bottom")) : this[0].offsetHeight : null },
                            offset: function() {
                                if (this.length > 0) {
                                    var e = this[0],
                                        t = e.getBoundingClientRect(),
                                        i = document.body,
                                        n = e.clientTop || i.clientTop || 0,
                                        a = e.clientLeft || i.clientLeft || 0,
                                        r = window.pageYOffset || e.scrollTop,
                                        s = window.pageXOffset || e.scrollLeft;
                                    return { top: t.top + r - n, left: t.left + s - a }
                                }
                                return null
                            },
                            css: function(e, t) {
                                var i;
                                if (1 === arguments.length) {
                                    if ("string" != typeof e) {
                                        for (i = 0; i < this.length; i++)
                                            for (var n in e) this[i].style[n] = e[n];
                                        return this
                                    }
                                    if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(e)
                                }
                                if (2 === arguments.length && "string" == typeof e) { for (i = 0; i < this.length; i++) this[i].style[e] = t; return this }
                                return this
                            },
                            each: function(e) { for (var t = 0; t < this.length; t++) e.call(this[t], t, this[t]); return this },
                            html: function(e) { if (void 0 === e) return this[0] ? this[0].innerHTML : void 0; for (var t = 0; t < this.length; t++) this[t].innerHTML = e; return this },
                            text: function(e) { if (void 0 === e) return this[0] ? this[0].textContent.trim() : null; for (var t = 0; t < this.length; t++) this[t].textContent = e; return this },
                            is: function(i) {
                                if (!this[0]) return !1;
                                var n, a;
                                if ("string" == typeof i) {
                                    var r = this[0];
                                    if (r === document) return i === document;
                                    if (r === window) return i === window;
                                    if (r.matches) return r.matches(i);
                                    if (r.webkitMatchesSelector) return r.webkitMatchesSelector(i);
                                    if (r.mozMatchesSelector) return r.mozMatchesSelector(i);
                                    if (r.msMatchesSelector) return r.msMatchesSelector(i);
                                    for (n = t(i), a = 0; a < n.length; a++)
                                        if (n[a] === this[0]) return !0;
                                    return !1
                                }
                                if (i === document) return this[0] === document;
                                if (i === window) return this[0] === window;
                                if (i.nodeType || i instanceof e) {
                                    for (n = i.nodeType ? [i] : i, a = 0; a < n.length; a++)
                                        if (n[a] === this[0]) return !0;
                                    return !1
                                }
                                return !1
                            },
                            index: function() { if (this[0]) { for (var e = this[0], t = 0; null !== (e = e.previousSibling);) 1 === e.nodeType && t++; return t } },
                            eq: function(t) { if (void 0 === t) return this; var i, n = this.length; return t > n - 1 ? new e([]) : t < 0 ? new e((i = n + t) < 0 ? [] : [this[i]]) : new e([this[t]]) },
                            append: function(t) {
                                var i, n;
                                for (i = 0; i < this.length; i++)
                                    if ("string" == typeof t) { var a = document.createElement("div"); for (a.innerHTML = t; a.firstChild;) this[i].appendChild(a.firstChild) } else if (t instanceof e)
                                    for (n = 0; n < t.length; n++) this[i].appendChild(t[n]);
                                else this[i].appendChild(t);
                                return this
                            },
                            prepend: function(t) {
                                var i, n;
                                for (i = 0; i < this.length; i++)
                                    if ("string" == typeof t) { var a = document.createElement("div"); for (a.innerHTML = t, n = a.childNodes.length - 1; n >= 0; n--) this[i].insertBefore(a.childNodes[n], this[i].childNodes[0]) } else if (t instanceof e)
                                    for (n = 0; n < t.length; n++) this[i].insertBefore(t[n], this[i].childNodes[0]);
                                else this[i].insertBefore(t, this[i].childNodes[0]);
                                return this
                            },
                            insertBefore: function(e) {
                                for (var i = t(e), n = 0; n < this.length; n++)
                                    if (1 === i.length) i[0].parentNode.insertBefore(this[n], i[0]);
                                    else if (i.length > 1)
                                    for (var a = 0; a < i.length; a++) i[a].parentNode.insertBefore(this[n].cloneNode(!0), i[a])
                            },
                            insertAfter: function(e) {
                                for (var i = t(e), n = 0; n < this.length; n++)
                                    if (1 === i.length) i[0].parentNode.insertBefore(this[n], i[0].nextSibling);
                                    else if (i.length > 1)
                                    for (var a = 0; a < i.length; a++) i[a].parentNode.insertBefore(this[n].cloneNode(!0), i[a].nextSibling)
                            },
                            next: function(i) { return new e(this.length > 0 ? i ? this[0].nextElementSibling && t(this[0].nextElementSibling).is(i) ? [this[0].nextElementSibling] : [] : this[0].nextElementSibling ? [this[0].nextElementSibling] : [] : []) },
                            nextAll: function(i) {
                                var n = [],
                                    a = this[0];
                                if (!a) return new e([]);
                                for (; a.nextElementSibling;) {
                                    var r = a.nextElementSibling;
                                    i ? t(r).is(i) && n.push(r) : n.push(r), a = r
                                }
                                return new e(n)
                            },
                            prev: function(i) { return new e(this.length > 0 ? i ? this[0].previousElementSibling && t(this[0].previousElementSibling).is(i) ? [this[0].previousElementSibling] : [] : this[0].previousElementSibling ? [this[0].previousElementSibling] : [] : []) },
                            prevAll: function(i) {
                                var n = [],
                                    a = this[0];
                                if (!a) return new e([]);
                                for (; a.previousElementSibling;) {
                                    var r = a.previousElementSibling;
                                    i ? t(r).is(i) && n.push(r) : n.push(r), a = r
                                }
                                return new e(n)
                            },
                            parent: function(e) { for (var i = [], n = 0; n < this.length; n++) e ? t(this[n].parentNode).is(e) && i.push(this[n].parentNode) : i.push(this[n].parentNode); return t(t.unique(i)) },
                            parents: function(e) {
                                for (var i = [], n = 0; n < this.length; n++)
                                    for (var a = this[n].parentNode; a;) e ? t(a).is(e) && i.push(a) : i.push(a), a = a.parentNode;
                                return t(t.unique(i))
                            },
                            find: function(t) {
                                for (var i = [], n = 0; n < this.length; n++)
                                    for (var a = this[n].querySelectorAll(t), r = 0; r < a.length; r++) i.push(a[r]);
                                return new e(i)
                            },
                            children: function(i) {
                                for (var n = [], a = 0; a < this.length; a++)
                                    for (var r = this[a].childNodes, s = 0; s < r.length; s++) i ? 1 === r[s].nodeType && t(r[s]).is(i) && n.push(r[s]) : 1 === r[s].nodeType && n.push(r[s]);
                                return new e(t.unique(n))
                            },
                            remove: function() { for (var e = 0; e < this.length; e++) this[e].parentNode && this[e].parentNode.removeChild(this[e]); return this },
                            add: function() { var e, i, n = this; for (e = 0; e < arguments.length; e++) { var a = t(arguments[e]); for (i = 0; i < a.length; i++) n[n.length] = a[i], n.length++ } return n }
                        }, t.fn = e.prototype, t.unique = function(e) { for (var t = [], i = 0; i < e.length; i++) - 1 === t.indexOf(e[i]) && t.push(e[i]); return t }, t
                    }(), r = ["jQuery", "Zepto", "Dom7"], s = 0; s < r.length; s++) window[r[s]] && function(e) {
                    e.fn.swiper = function(t) {
                        var i;
                        return e(this).each(function() {
                            var e = new n(this, t);
                            i || (i = e)
                        }), i
                    }
                }(window[r[s]]);
                (i = void 0 === a ? window.Dom7 || window.Zepto || window.jQuery : a) && ("transitionEnd" in i.fn || (i.fn.transitionEnd = function(e) {
                    function t(r) {
                        if (r.target === this)
                            for (e.call(this, r), i = 0; i < n.length; i++) a.off(n[i], t)
                    }
                    var i, n = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"],
                        a = this;
                    if (e)
                        for (i = 0; i < n.length; i++) a.on(n[i], t);
                    return this
                }), "transform" in i.fn || (i.fn.transform = function(e) {
                    for (var t = 0; t < this.length; t++) {
                        var i = this[t].style;
                        i.webkitTransform = i.MsTransform = i.msTransform = i.MozTransform = i.OTransform = i.transform = e
                    }
                    return this
                }), "transition" in i.fn || (i.fn.transition = function(e) {
                    "string" != typeof e && (e += "ms");
                    for (var t = 0; t < this.length; t++) {
                        var i = this[t].style;
                        i.webkitTransitionDuration = i.MsTransitionDuration = i.msTransitionDuration = i.MozTransitionDuration = i.OTransitionDuration = i.transitionDuration = e
                    }
                    return this
                }), "outerWidth" in i.fn || (i.fn.outerWidth = function(e) { return this.length > 0 ? e ? this[0].offsetWidth + parseFloat(this.css("margin-right")) + parseFloat(this.css("margin-left")) : this[0].offsetWidth : null })), window.Swiper = n
            }(), e.exports = window.Swiper
        }).call(t, i("7t+N"))
    },
    msXi: function(e, t, i) {
        var n = i("77Pl");
        e.exports = function(e, t, i, a) { try { return a ? t(n(i)[0], i[1]) : t(i) } catch (t) { var r = e.return; throw void 0 !== r && n(r.call(e)), t } }
    },
    mtWM: function(e, t, i) { e.exports = i("tIFN") },
    mw3O: function(e, t, i) {
        "use strict";
        var n = i("CwSZ"),
            a = i("DDCP"),
            r = i("XgCd");
        e.exports = { formats: r, parse: a, stringify: n }
    },
    oJlt: function(e, t, i) {
        "use strict";
        var n = i("cGG2"),
            a = ["age", "authorization", "content-length", "content-type", "etag", "expires", "from", "host", "if-modified-since", "if-unmodified-since", "last-modified", "location", "max-forwards", "proxy-authorization", "referer", "retry-after", "user-agent"];
        e.exports = function(e) {
            var t, i, r, s = {};
            return e ? (n.forEach(e.split("\n"), function(e) {
                if (r = e.indexOf(":"), t = n.trim(e.substr(0, r)).toLowerCase(), i = n.trim(e.substr(r + 1)), t) {
                    if (s[t] && a.indexOf(t) >= 0) return;
                    s[t] = "set-cookie" === t ? (s[t] ? s[t] : []).concat([i]) : s[t] ? s[t] + ", " + i : i
                }
            }), s) : s
        }
    },
    obDj: function(e, t) { e.exports = "" },
    p1b6: function(e, t, i) {
        "use strict";
        var n = i("cGG2");
        e.exports = n.isStandardBrowserEnv() ? {
            write: function(e, t, i, a, r, s) {
                var o = [];
                o.push(e + "=" + encodeURIComponent(t)), n.isNumber(i) && o.push("expires=" + new Date(i).toGMTString()), n.isString(a) && o.push("path=" + a), n.isString(r) && o.push("domain=" + r), !0 === s && o.push("secure"), document.cookie = o.join("; ")
            },
            read: function(e) { var t = document.cookie.match(new RegExp("(^|;\\s*)(" + e + ")=([^;]*)")); return t ? decodeURIComponent(t[3]) : null },
            remove: function(e) { this.write(e, "", Date.now() - 864e5) }
        } : { write: function() {}, read: function() { return null }, remove: function() {} }
    },
    p8xL: function(e, t, i) {
        "use strict";
        var n = Object.prototype.hasOwnProperty,
            a = Array.isArray,
            r = function() { for (var e = [], t = 0; t < 256; ++t) e.push("%" + ((t < 16 ? "0" : "") + t.toString(16)).toUpperCase()); return e }(),
            s = function(e, t) { for (var i = t && t.plainObjects ? Object.create(null) : {}, n = 0; n < e.length; ++n) void 0 !== e[n] && (i[n] = e[n]); return i };
        e.exports = {
            arrayToObject: s,
            assign: function(e, t) { return Object.keys(t).reduce(function(e, i) { return e[i] = t[i], e }, e) },
            combine: function(e, t) { return [].concat(e, t) },
            compact: function(e) {
                for (var t = [{ obj: { o: e }, prop: "o" }], i = [], n = 0; n < t.length; ++n)
                    for (var r = t[n], s = r.obj[r.prop], o = Object.keys(s), l = 0; l < o.length; ++l) {
                        var d = o[l],
                            c = s[d];
                        "object" == typeof c && null !== c && -1 === i.indexOf(c) && (t.push({ obj: s, prop: d }), i.push(c))
                    }
                return function(e) {
                    for (; e.length > 1;) {
                        var t = e.pop(),
                            i = t.obj[t.prop];
                        if (a(i)) {
                            for (var n = [], r = 0; r < i.length; ++r) void 0 !== i[r] && n.push(i[r]);
                            t.obj[t.prop] = n
                        }
                    }
                }(t), e
            },
            decode: function(e, t, i) { var n = e.replace(/\+/g, " "); if ("iso-8859-1" === i) return n.replace(/%[0-9a-f]{2}/gi, unescape); try { return decodeURIComponent(n) } catch (e) { return n } },
            encode: function(e, t, i) {
                if (0 === e.length) return e;
                var n = "string" == typeof e ? e : String(e);
                if ("iso-8859-1" === i) return escape(n).replace(/%u[0-9a-f]{4}/gi, function(e) { return "%26%23" + parseInt(e.slice(2), 16) + "%3B" });
                for (var a = "", s = 0; s < n.length; ++s) {
                    var o = n.charCodeAt(s);
                    45 === o || 46 === o || 95 === o || 126 === o || o >= 48 && o <= 57 || o >= 65 && o <= 90 || o >= 97 && o <= 122 ? a += n.charAt(s) : o < 128 ? a += r[o] : o < 2048 ? a += r[192 | o >> 6] + r[128 | 63 & o] : o < 55296 || o >= 57344 ? a += r[224 | o >> 12] + r[128 | o >> 6 & 63] + r[128 | 63 & o] : (s += 1, o = 65536 + ((1023 & o) << 10 | 1023 & n.charCodeAt(s)), a += r[240 | o >> 18] + r[128 | o >> 12 & 63] + r[128 | o >> 6 & 63] + r[128 | 63 & o])
                }
                return a
            },
            isBuffer: function(e) { return !(!e || "object" != typeof e || !(e.constructor && e.constructor.isBuffer && e.constructor.isBuffer(e))) },
            isRegExp: function(e) { return "[object RegExp]" === Object.prototype.toString.call(e) },
            merge: function e(t, i, r) {
                if (!i) return t;
                if ("object" != typeof i) {
                    if (a(t)) t.push(i);
                    else {
                        if (!t || "object" != typeof t) return [t, i];
                        (r && (r.plainObjects || r.allowPrototypes) || !n.call(Object.prototype, i)) && (t[i] = !0)
                    }
                    return t
                }
                if (!t || "object" != typeof t) return [t].concat(i);
                var o = t;
                return a(t) && !a(i) && (o = s(t, r)), a(t) && a(i) ? (i.forEach(function(i, a) {
                    if (n.call(t, a)) {
                        var s = t[a];
                        s && "object" == typeof s && i && "object" == typeof i ? t[a] = e(s, i, r) : t.push(i)
                    } else t[a] = i
                }), t) : Object.keys(i).reduce(function(t, a) { var s = i[a]; return n.call(t, a) ? t[a] = e(t[a], s, r) : t[a] = s, t }, o)
            }
        }
    },
    pBtG: function(e, t, i) {
        "use strict";
        e.exports = function(e) { return !(!e || !e.__CANCEL__) }
    },
    pxG4: function(e, t, i) {
        "use strict";
        e.exports = function(e) { return function(t) { return e.apply(null, t) } }
    },
    qARP: function(e, t, i) {
        "use strict";
        var n = i("lOnJ");
        e.exports.f = function(e) {
            return new function(e) {
                var t, i;
                this.promise = new e(function(e, n) {
                    if (void 0 !== t || void 0 !== i) throw TypeError("Bad Promise constructor");
                    t = e, i = n
                }), this.resolve = n(t), this.reject = n(i)
            }(e)
        }
    },
    qRfI: function(e, t, i) {
        "use strict";
        e.exports = function(e, t) { return t ? e.replace(/\/+$/, "") + "/" + t.replace(/^\/+/, "") : e }
    },
    qekx: function(e, t) { e.exports = "" },
    rzkp: function(e, t) {},
    s1N0: function(e, t) {},
    t8qj: function(e, t, i) {
        "use strict";
        e.exports = function(e, t, i, n, a) { return e.config = t, i && (e.code = i), e.request = n, e.response = a, e }
    },
    t8x9: function(e, t, i) {
        var n = i("77Pl"),
            a = i("lOnJ"),
            r = i("dSzd")("species");
        e.exports = function(e, t) { var i, s = n(e).constructor; return void 0 === s || void 0 == (i = n(s)[r]) ? t : a(i) }
    },
    tIFN: function(e, t, i) {
        "use strict";
        var n = i("cGG2"),
            a = i("JP+z"),
            r = i("XmWM"),
            s = i("KCLY");

        function o(e) {
            var t = new r(e),
                i = a(r.prototype.request, t);
            return n.extend(i, r.prototype, t), n.extend(i, t), i
        }
        var l = o(s);
        l.Axios = r, l.create = function(e) { return o(n.merge(s, e)) }, l.Cancel = i("dVOP"), l.CancelToken = i("cWxy"), l.isCancel = i("pBtG"), l.all = function(e) { return Promise.all(e) }, l.spread = i("pxG4"), e.exports = l, e.exports.default = l
    },
    uWPG: function(e, t) {},
    uuU8: function(e, t) { e.exports = "" },
    wDQo: function(e, t, i) {
        "use strict";
        Object.defineProperty(t, "__esModule", { value: !0 });
        i("BpKH"), i("kzo9");
        var n = i("7t+N"),
            a = i.n(n),
            r = (i("E/YD"), i("//Fk")),
            s = i.n(r),
            o = i("7+uW"),
            l = i("mtWM"),
            d = i.n(l),
            c = i("mw3O"),
            u = i.n(c);

        function p(e, t) { return new s.a(function(i, n) { d.a.post(e, u.a.stringify(t)).then(function(e) { i(e) }).catch(function(e) { n(e) }) }) }
        "test" == Object({ NODE_ENV: "production" }).PLATFORM ? d.a.defaults.baseURL = "" : "pro" == Object({ NODE_ENV: "production" }).PLATFORM && (d.a.defaults.baseURL = ""), d.a.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded;charset=UTF-8", d.a.interceptors.request.use(function(e) { return e }, function(e) { return s.a.error(e) }), d.a.interceptors.response.use(function(e) { return s.a.resolve(e.data) }, function(e) { return s.a.reject(e) }), o.default.prototype.$getParams = function(e) {
            var t = {},
                i = [],
                n = window.location.href.split("?");
            for (var a in n) 0 != a && i.push(n[a]);
            i[0] = i[0].split("#")[0];
            var r = [];
            return i.forEach(function(e) { e.split("&").forEach(function(e) { r.push(e) }) }), r.forEach(function(e, i) {
                var n = e.indexOf("="),
                    a = e.substring(0, n).toLowerCase(),
                    r = e.substring(n + 1);
                t[a] = r
            }), t[e.toLowerCase()] || ""
        }, o.default.prototype.$IsJhWebView = function() { var e = window.location.href; return e.toLowerCase().indexOf("userId".toLowerCase()) > -1 && (e.toLowerCase().indexOf("appId".toLowerCase()) > -1 || void 0) }, o.default.prototype.$axios = d.a;
        var h = function(e) { return p("/CockpitMobile/PlatformPics", e) },
            f = function(e) { return p("/CockpitMobile/PatrolPlatform", e) },
            m = function(e) { return p("/CockpitMobile/PlatFormRects", e) },
            g = {
                data: function() { return { titleNum: 1e4, set3: "" } },
                methods: {
                    JHall: function() {
                        var e = this.titleNum,
                            t = this;

                        function i(i) {
                            if (e <= parseInt(1.3 * t.titleNum)) {
                                e += Math.ceil(9 * Math.random());
                                for (var n = a()(".t_num3 i"), r = String(i).length, s = 0; s < r; s++) {
                                    n.length <= s && a()(".t_num3").append("<i></i>");
                                    var o = String(i).charAt(s),
                                        l = 60 * -parseInt(o);
                                    a()(".t_num3 i").eq(s).animate({ backgroundPosition: "(0 " + String(l) + "px)" }, "slow", "swing", function() {})
                                }
                            } else clearInterval(t.set3)
                        }
                        a()(function() { i(e), t.set3 = setInterval(function() { i(e) }, 5e3) })
                    },
                    GetPatrolPlatform: function() {
                        var e = this;
                        f({ code: "all", AppId: this.$getParams("appid"), EBCOrganizationId: "", UserId: this.$getParams("userid") }).then(function(t) { t.SCater.Data.PatrolPlatform_A.forEach(function(t) { "全部商家数" == t.StatType && (clearInterval(e.set3), e.titleNum = 0, e.titleNum = t.Num, e.JHall()) }) })
                    }
                },
                created: function() { this.GetPatrolPlatform(), this.JHall() }
            },
            v = {
                render: function() {
                    this.$createElement;
                    this._self._c;
                    return this._m(0)
                },
                staticRenderFns: [function() {
                    var e = this.$createElement,
                        t = this._self._c || e;
                    return t("div", { staticClass: "title" }, [t("span", { staticClass: "titleName" }, [t("a", [this._v("金和网络")]), this._v("智能巡查平台")]), this._v(" "), t("div", { staticStyle: { position: "relative", "margin-left": "101px" } }, [t("p", { staticClass: "titleName-Bo" }, [this._v("巡查学校累计数数")]), this._v(" "), t("span", { staticClass: "t_num3" })])])
                }]
            };
        var y = i("VU/8")(g, v, !1, function(e) { i("grlS") }, null, null).exports,
            w = {
                data: function() { return { XCnum: 10, Quenum: 1e3, set1: "", set2: "" } },
                methods: {
                    XCques: function() {
                        var e = this.XCnum,
                            t = this;

                        function i(i) {
                            if (e <= parseInt(1e3 * t.XCnum)) {
                                e += 1;
                                for (var n = a()(".t_num1 i"), r = String(i).length, s = 0; s < r; s++) {
                                    n.length <= s && a()(".t_num1").append("<i></i>");
                                    var o = String(i).charAt(s),
                                        l = 60 * -parseInt(o);
                                    a()(".t_num1 i").eq(s).animate({ backgroundPosition: "(0 " + String(l) + "px)" }, "slow", "swing", function() {})
                                }
                            } else clearInterval(t.set1)
                        }
                        a()(function() { i(e), t.set1 = setInterval(function() { i(e) }, 1e4) })
                    },
                    Quexposure: function() {
                        var e = this.Quenum,
                            t = this;

                        function i(i) {
                            if (e <= parseInt(2 * t.Quenum)) {
                                e += Math.ceil(9 * Math.random());
                                for (var n = a()(".t_num2 i"), r = String(i).length, s = 0; s < r; s++) {
                                    n.length <= s && a()(".t_num2").append("<i></i>");
                                    var o = String(i).charAt(s),
                                        l = 60 * -parseInt(o);
                                    a()(".t_num2 i").eq(s).animate({ backgroundPosition: "(0 " + String(l) + "px)" }, "slow", "swing", function() {})
                                }
                            } else clearInterval(t.set2)
                        }
                        a()(function() { i(e), t.set2 = setInterval(function() { i(e) }, 5e3) })
                    },
                    GetPatrolPlatform: function() {
                        var e = this;
                        f({ code: "all", AppId: this.$getParams("appid"), EBCOrganizationId: "", UserId: this.$getParams("userid") }).then(function(t) { console.log(t), t.SCater.Data.PatrolPlatform_A.forEach(function(t) { "疑似违规学校食堂数" == t.StatType ? (clearInterval(e.set1), e.XCnum = 0, e.XCnum = t.Num, e.XCques()) : "问题曝光数" == t.StatType && (clearInterval(e.set2), e.Quenum = 0, e.Quenum = t.Num, e.Quexposure()) }) })
                    }
                },
                created: function() { this.GetPatrolPlatform(), this.XCques(), this.Quexposure() }
            },
            b = {
                render: function() {
                    this.$createElement;
                    this._self._c;
                    return this._m(0)
                },
                staticRenderFns: [function() {
                    var e = this.$createElement,
                        t = this._self._c || e;
                    return t("div", { staticClass: "leftview" }, [t("div", { staticClass: "quesList" }, [t("div", [t("p", [this._v("疑似违规学校食堂数")]), this._v(" "), t("span", { staticClass: "t_num1" })]), this._v(" "), t("div", [t("p", [this._v("发现问题数")]), this._v(" "), t("span", { staticClass: "t_num2" })])])])
                }]
            };
        var x = i("VU/8")(w, b, !1, function(e) { i("uWPG") }, null, null).exports,
            T = i("WBHA"),
            S = {
                data: function() { return { imgList: 11, numShow: !1 } },
                components: { countTo: i.n(T).a },
                created: function() { this.GetPlatformIssues() },
                methods: {
                    GetPlatformIssues: function() {
                        var e, t = this;
                        (e = { code: "all", AppId: this.$getParams("appid"), EBCOrganizationId: "", UserId: this.$getParams("userid") }, p("/CockpitMobile/PlatformIssues", e)).then(function(e) {
                            console.log(e), setTimeout(function() {
                                t.imgList = e.SCater.Data.PlatformIssues_A, console.log(t.imgList);
                                t.imgList = t.imgList.concat([{ Num: 23, Result: "卫生环境欠佳" }, { Num: 12, Result: "砧板混用" }, { Num: 48, Result: "无健康证人员" }, { Num: 15, Result: "挡鼠板移位" }, { Num: 9, Result: "嬉笑打闹" }]), t.numShow = !0
                            }, 10)
                        })
                    }
                }
            },
            C = {
                render: function() {
                    var e = this,
                        t = e.$createElement,
                        n = e._self._c || t;
                    return n("div", { staticClass: "rightview" }, [n("div", { staticClass: "rightTitle" }, [e._v("\n    智能巡查情况\n  ")]), e._v(" "), n("div", e._l(e.imgList, function(t, a) { return n("div", { staticClass: "imgList" }, [n("img", { attrs: { src: i("BaZ6")("./ic" + (Math.floor(12 * Math.random()) + 1) + ".png") } }), e._v(" "), n("p", { directives: [{ name: "show", rawName: "v-show", value: e.numShow, expression: "numShow" }] }, [n("countTo", { attrs: { startVal: 0, separator: "", endVal: t.Num, duration: 3e3 } })], 1), e._v(" "), n("a", [e._v(e._s(t.Result))])]) }), 0)])
                },
                staticRenderFns: []
            };
        var E = i("VU/8")(S, C, !1, function(e) { i("xDfs") }, null, null).exports,
            A = "undefined" == typeof document ? { body: {}, addEventListener: function() {}, removeEventListener: function() {}, activeElement: { blur: function() {}, nodeName: "" }, querySelector: function() { return null }, querySelectorAll: function() { return [] }, getElementById: function() { return null }, createEvent: function() { return { initEvent: function() {} } }, createElement: function() { return { children: [], childNodes: [], style: {}, setAttribute: function() {}, getElementsByTagName: function() { return [] } } }, location: { hash: "" } } : document,
            M = "undefined" == typeof window ? { document: A, navigator: { userAgent: "" }, location: {}, history: {}, CustomEvent: function() { return this }, addEventListener: function() {}, removeEventListener: function() {}, getComputedStyle: function() { return { getPropertyValue: function() { return "" } } }, Image: function() {}, Date: function() {}, screen: {}, setTimeout: function() {}, clearTimeout: function() {} } : window;
        class P { constructor(e) { const t = this; for (let i = 0; i < e.length; i += 1) t[i] = e[i]; return t.length = e.length, this } }

        function k(e, t) {
            const i = [];
            let n = 0;
            if (e && !t && e instanceof P) return e;
            if (e)
                if ("string" == typeof e) {
                    let a, r;
                    const s = e.trim();
                    if (s.indexOf("<") >= 0 && s.indexOf(">") >= 0) { let e = "div"; for (0 === s.indexOf("<li") && (e = "ul"), 0 === s.indexOf("<tr") && (e = "tbody"), 0 !== s.indexOf("<td") && 0 !== s.indexOf("<th") || (e = "tr"), 0 === s.indexOf("<tbody") && (e = "table"), 0 === s.indexOf("<option") && (e = "select"), (r = A.createElement(e)).innerHTML = s, n = 0; n < r.childNodes.length; n += 1) i.push(r.childNodes[n]) } else
                        for (a = t || "#" !== e[0] || e.match(/[ .<>:~]/) ? (t || A).querySelectorAll(e.trim()) : [A.getElementById(e.trim().split("#")[1])], n = 0; n < a.length; n += 1) a[n] && i.push(a[n])
                } else if (e.nodeType || e === M || e === A) i.push(e);
            else if (e.length > 0 && e[0].nodeType)
                for (n = 0; n < e.length; n += 1) i.push(e[n]);
            return new P(i)
        }

        function z(e) { const t = []; for (let i = 0; i < e.length; i += 1) - 1 === t.indexOf(e[i]) && t.push(e[i]); return t }
        k.fn = P.prototype, k.Class = P, k.Dom7 = P;
        "resize scroll".split(" ");
        const I = {
            addClass: function(e) {
                if (void 0 === e) return this;
                const t = e.split(" ");
                for (let e = 0; e < t.length; e += 1)
                    for (let i = 0; i < this.length; i += 1) void 0 !== this[i] && void 0 !== this[i].classList && this[i].classList.add(t[e]);
                return this
            },
            removeClass: function(e) {
                const t = e.split(" ");
                for (let e = 0; e < t.length; e += 1)
                    for (let i = 0; i < this.length; i += 1) void 0 !== this[i] && void 0 !== this[i].classList && this[i].classList.remove(t[e]);
                return this
            },
            hasClass: function(e) { return !!this[0] && this[0].classList.contains(e) },
            toggleClass: function(e) {
                const t = e.split(" ");
                for (let e = 0; e < t.length; e += 1)
                    for (let i = 0; i < this.length; i += 1) void 0 !== this[i] && void 0 !== this[i].classList && this[i].classList.toggle(t[e]);
                return this
            },
            attr: function(e, t) {
                if (1 === arguments.length && "string" == typeof e) return this[0] ? this[0].getAttribute(e) : void 0;
                for (let i = 0; i < this.length; i += 1)
                    if (2 === arguments.length) this[i].setAttribute(e, t);
                    else
                        for (const t in e) this[i][t] = e[t], this[i].setAttribute(t, e[t]);
                return this
            },
            removeAttr: function(e) { for (let t = 0; t < this.length; t += 1) this[t].removeAttribute(e); return this },
            data: function(e, t) { let i; if (void 0 !== t) { for (let n = 0; n < this.length; n += 1)(i = this[n]).dom7ElementDataStorage || (i.dom7ElementDataStorage = {}), i.dom7ElementDataStorage[e] = t; return this } if (i = this[0]) { if (i.dom7ElementDataStorage && e in i.dom7ElementDataStorage) return i.dom7ElementDataStorage[e]; const t = i.getAttribute(`data-${e}`); return t || void 0 } },
            transform: function(e) {
                for (let t = 0; t < this.length; t += 1) {
                    const i = this[t].style;
                    i.webkitTransform = e, i.transform = e
                }
                return this
            },
            transition: function(e) {
                "string" != typeof e && (e = `${e}ms`);
                for (let t = 0; t < this.length; t += 1) {
                    const i = this[t].style;
                    i.webkitTransitionDuration = e, i.transitionDuration = e
                }
                return this
            },
            on: function(...e) {
                let [t, i, n, a] = e;

                function r(e) {
                    const t = e.target;
                    if (!t) return;
                    const a = e.target.dom7EventData || [];
                    if (a.indexOf(e) < 0 && a.unshift(e), k(t).is(i)) n.apply(t, a);
                    else { const e = k(t).parents(); for (let t = 0; t < e.length; t += 1) k(e[t]).is(i) && n.apply(e[t], a) }
                }

                function s(e) {
                    const t = e && e.target && e.target.dom7EventData || [];
                    t.indexOf(e) < 0 && t.unshift(e), n.apply(this, t)
                }
                "function" == typeof e[1] && ([t, n, a] = e, i = void 0), a || (a = !1);
                const o = t.split(" ");
                let l;
                for (let e = 0; e < this.length; e += 1) {
                    const t = this[e];
                    if (i)
                        for (l = 0; l < o.length; l += 1) {
                            const e = o[l];
                            t.dom7LiveListeners || (t.dom7LiveListeners = {}), t.dom7LiveListeners[e] || (t.dom7LiveListeners[e] = []), t.dom7LiveListeners[e].push({ listener: n, proxyListener: r }), t.addEventListener(e, r, a)
                        } else
                            for (l = 0; l < o.length; l += 1) {
                                const e = o[l];
                                t.dom7Listeners || (t.dom7Listeners = {}), t.dom7Listeners[e] || (t.dom7Listeners[e] = []), t.dom7Listeners[e].push({ listener: n, proxyListener: s }), t.addEventListener(e, s, a)
                            }
                }
                return this
            },
            off: function(...e) {
                let [t, i, n, a] = e;
                "function" == typeof e[1] && ([t, n, a] = e, i = void 0), a || (a = !1);
                const r = t.split(" ");
                for (let e = 0; e < r.length; e += 1) {
                    const t = r[e];
                    for (let e = 0; e < this.length; e += 1) {
                        const r = this[e];
                        let s;
                        if (!i && r.dom7Listeners ? s = r.dom7Listeners[t] : i && r.dom7LiveListeners && (s = r.dom7LiveListeners[t]), s && s.length)
                            for (let e = s.length - 1; e >= 0; e -= 1) {
                                const i = s[e];
                                n && i.listener === n ? (r.removeEventListener(t, i.proxyListener, a), s.splice(e, 1)) : n && i.listener && i.listener.dom7proxy && i.listener.dom7proxy === n ? (r.removeEventListener(t, i.proxyListener, a), s.splice(e, 1)) : n || (r.removeEventListener(t, i.proxyListener, a), s.splice(e, 1))
                            }
                    }
                }
                return this
            },
            trigger: function(...e) {
                const t = e[0].split(" "),
                    i = e[1];
                for (let n = 0; n < t.length; n += 1) {
                    const a = t[n];
                    for (let t = 0; t < this.length; t += 1) {
                        const n = this[t];
                        let r;
                        try { r = new M.CustomEvent(a, { detail: i, bubbles: !0, cancelable: !0 }) } catch (e) {
                            (r = A.createEvent("Event")).initEvent(a, !0, !0), r.detail = i
                        }
                        n.dom7EventData = e.filter((e, t) => t > 0), n.dispatchEvent(r), n.dom7EventData = [], delete n.dom7EventData
                    }
                }
                return this
            },
            transitionEnd: function(e) {
                const t = ["webkitTransitionEnd", "transitionend"],
                    i = this;
                let n;

                function a(r) {
                    if (r.target === this)
                        for (e.call(this, r), n = 0; n < t.length; n += 1) i.off(t[n], a)
                }
                if (e)
                    for (n = 0; n < t.length; n += 1) i.on(t[n], a);
                return this
            },
            outerWidth: function(e) { if (this.length > 0) { if (e) { const e = this.styles(); return this[0].offsetWidth + parseFloat(e.getPropertyValue("margin-right")) + parseFloat(e.getPropertyValue("margin-left")) } return this[0].offsetWidth } return null },
            outerHeight: function(e) { if (this.length > 0) { if (e) { const e = this.styles(); return this[0].offsetHeight + parseFloat(e.getPropertyValue("margin-top")) + parseFloat(e.getPropertyValue("margin-bottom")) } return this[0].offsetHeight } return null },
            offset: function() {
                if (this.length > 0) {
                    const e = this[0],
                        t = e.getBoundingClientRect(),
                        i = A.body,
                        n = e.clientTop || i.clientTop || 0,
                        a = e.clientLeft || i.clientLeft || 0,
                        r = e === M ? M.scrollY : e.scrollTop,
                        s = e === M ? M.scrollX : e.scrollLeft;
                    return { top: t.top + r - n, left: t.left + s - a }
                }
                return null
            },
            css: function(e, t) {
                let i;
                if (1 === arguments.length) {
                    if ("string" != typeof e) {
                        for (i = 0; i < this.length; i += 1)
                            for (let t in e) this[i].style[t] = e[t];
                        return this
                    }
                    if (this[0]) return M.getComputedStyle(this[0], null).getPropertyValue(e)
                }
                if (2 === arguments.length && "string" == typeof e) { for (i = 0; i < this.length; i += 1) this[i].style[e] = t; return this }
                return this
            },
            each: function(e) {
                if (!e) return this;
                for (let t = 0; t < this.length; t += 1)
                    if (!1 === e.call(this[t], t, this[t])) return this;
                return this
            },
            html: function(e) { if (void 0 === e) return this[0] ? this[0].innerHTML : void 0; for (let t = 0; t < this.length; t += 1) this[t].innerHTML = e; return this },
            text: function(e) { if (void 0 === e) return this[0] ? this[0].textContent.trim() : null; for (let t = 0; t < this.length; t += 1) this[t].textContent = e; return this },
            is: function(e) {
                const t = this[0];
                let i, n;
                if (!t || void 0 === e) return !1;
                if ("string" == typeof e) {
                    if (t.matches) return t.matches(e);
                    if (t.webkitMatchesSelector) return t.webkitMatchesSelector(e);
                    if (t.msMatchesSelector) return t.msMatchesSelector(e);
                    for (i = k(e), n = 0; n < i.length; n += 1)
                        if (i[n] === t) return !0;
                    return !1
                }
                if (e === A) return t === A;
                if (e === M) return t === M;
                if (e.nodeType || e instanceof P) {
                    for (i = e.nodeType ? [e] : e, n = 0; n < i.length; n += 1)
                        if (i[n] === t) return !0;
                    return !1
                }
                return !1
            },
            index: function() { let e, t = this[0]; if (t) { for (e = 0; null !== (t = t.previousSibling);) 1 === t.nodeType && (e += 1); return e } },
            eq: function(e) { if (void 0 === e) return this; const t = this.length; let i; return new P(e > t - 1 ? [] : e < 0 ? (i = t + e) < 0 ? [] : [this[i]] : [this[e]]) },
            append: function(...e) {
                let t;
                for (let i = 0; i < e.length; i += 1) {
                    t = e[i];
                    for (let e = 0; e < this.length; e += 1)
                        if ("string" == typeof t) { const i = A.createElement("div"); for (i.innerHTML = t; i.firstChild;) this[e].appendChild(i.firstChild) } else if (t instanceof P)
                        for (let i = 0; i < t.length; i += 1) this[e].appendChild(t[i]);
                    else this[e].appendChild(t)
                }
                return this
            },
            prepend: function(e) {
                let t, i;
                for (t = 0; t < this.length; t += 1)
                    if ("string" == typeof e) { const n = A.createElement("div"); for (n.innerHTML = e, i = n.childNodes.length - 1; i >= 0; i -= 1) this[t].insertBefore(n.childNodes[i], this[t].childNodes[0]) } else if (e instanceof P)
                    for (i = 0; i < e.length; i += 1) this[t].insertBefore(e[i], this[t].childNodes[0]);
                else this[t].insertBefore(e, this[t].childNodes[0]);
                return this
            },
            next: function(e) { return this.length > 0 ? e ? this[0].nextElementSibling && k(this[0].nextElementSibling).is(e) ? new P([this[0].nextElementSibling]) : new P([]) : this[0].nextElementSibling ? new P([this[0].nextElementSibling]) : new P([]) : new P([]) },
            nextAll: function(e) {
                const t = [];
                let i = this[0];
                if (!i) return new P([]);
                for (; i.nextElementSibling;) {
                    const n = i.nextElementSibling;
                    e ? k(n).is(e) && t.push(n) : t.push(n), i = n
                }
                return new P(t)
            },
            prev: function(e) { if (this.length > 0) { const t = this[0]; return e ? t.previousElementSibling && k(t.previousElementSibling).is(e) ? new P([t.previousElementSibling]) : new P([]) : t.previousElementSibling ? new P([t.previousElementSibling]) : new P([]) } return new P([]) },
            prevAll: function(e) {
                const t = [];
                let i = this[0];
                if (!i) return new P([]);
                for (; i.previousElementSibling;) {
                    const n = i.previousElementSibling;
                    e ? k(n).is(e) && t.push(n) : t.push(n), i = n
                }
                return new P(t)
            },
            parent: function(e) { const t = []; for (let i = 0; i < this.length; i += 1) null !== this[i].parentNode && (e ? k(this[i].parentNode).is(e) && t.push(this[i].parentNode) : t.push(this[i].parentNode)); return k(z(t)) },
            parents: function(e) { const t = []; for (let i = 0; i < this.length; i += 1) { let n = this[i].parentNode; for (; n;) e ? k(n).is(e) && t.push(n) : t.push(n), n = n.parentNode } return k(z(t)) },
            closest: function(e) { let t = this; return void 0 === e ? new P([]) : (t.is(e) || (t = t.parents(e).eq(0)), t) },
            find: function(e) { const t = []; for (let i = 0; i < this.length; i += 1) { const n = this[i].querySelectorAll(e); for (let e = 0; e < n.length; e += 1) t.push(n[e]) } return new P(t) },
            children: function(e) { const t = []; for (let i = 0; i < this.length; i += 1) { const n = this[i].childNodes; for (let i = 0; i < n.length; i += 1) e ? 1 === n[i].nodeType && k(n[i]).is(e) && t.push(n[i]) : 1 === n[i].nodeType && t.push(n[i]) } return new P(z(t)) },
            filter: function(e) {
                const t = [],
                    i = this;
                for (let n = 0; n < i.length; n += 1) e.call(i[n], n, i[n]) && t.push(i[n]);
                return new P(t)
            },
            remove: function() { for (let e = 0; e < this.length; e += 1) this[e].parentNode && this[e].parentNode.removeChild(this[e]); return this },
            add: function(...e) { const t = this; let i, n; for (i = 0; i < e.length; i += 1) { const a = k(e[i]); for (n = 0; n < a.length; n += 1) t[t.length] = a[n], t.length += 1 } return t },
            styles: function() { return this[0] ? M.getComputedStyle(this[0], null) : {} }
        };
        Object.keys(I).forEach(e => { k.fn[e] = k.fn[e] || I[e] });
        const D = {
                deleteProps(e) {
                    const t = e;
                    Object.keys(t).forEach(e => { try { t[e] = null } catch (e) {} try { delete t[e] } catch (e) {} })
                },
                nextTick: (e, t = 0) => setTimeout(e, t),
                now: () => Date.now(),
                getTranslate(e, t = "x") { let i, n, a; const r = M.getComputedStyle(e, null); return M.WebKitCSSMatrix ? ((n = r.transform || r.webkitTransform).split(",").length > 6 && (n = n.split(", ").map(e => e.replace(",", ".")).join(", ")), a = new M.WebKitCSSMatrix("none" === n ? "" : n)) : i = (a = r.MozTransform || r.OTransform || r.MsTransform || r.msTransform || r.transform || r.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,")).toString().split(","), "x" === t && (n = M.WebKitCSSMatrix ? a.m41 : 16 === i.length ? parseFloat(i[12]) : parseFloat(i[4])), "y" === t && (n = M.WebKitCSSMatrix ? a.m42 : 16 === i.length ? parseFloat(i[13]) : parseFloat(i[5])), n || 0 },
                parseUrlQuery(e) {
                    const t = {};
                    let i, n, a, r, s = e || M.location.href;
                    if ("string" == typeof s && s.length)
                        for (r = (n = (s = s.indexOf("?") > -1 ? s.replace(/\S*\?/, "") : "").split("&").filter(e => "" !== e)).length, i = 0; i < r; i += 1) a = n[i].replace(/#\S+/g, "").split("="), t[decodeURIComponent(a[0])] = void 0 === a[1] ? void 0 : decodeURIComponent(a[1]) || "";
                    return t
                },
                isObject: e => "object" == typeof e && null !== e && e.constructor && e.constructor === Object,
                extend(...e) {
                    const t = Object(e[0]);
                    for (let i = 1; i < e.length; i += 1) {
                        const n = e[i];
                        if (void 0 !== n && null !== n) {
                            const e = Object.keys(Object(n));
                            for (let i = 0, a = e.length; i < a; i += 1) {
                                const a = e[i],
                                    r = Object.getOwnPropertyDescriptor(n, a);
                                void 0 !== r && r.enumerable && (D.isObject(t[a]) && D.isObject(n[a]) ? D.extend(t[a], n[a]) : !D.isObject(t[a]) && D.isObject(n[a]) ? (t[a] = {}, D.extend(t[a], n[a])) : t[a] = n[a])
                            }
                        }
                    }
                    return t
                }
            },
            L = {
                touch: M.Modernizr && !0 === M.Modernizr.touch || !!(M.navigator.maxTouchPoints > 0 || "ontouchstart" in M || M.DocumentTouch && A instanceof M.DocumentTouch),
                pointerEvents: !!M.PointerEvent && "maxTouchPoints" in M.navigator && M.navigator.maxTouchPoints > 0,
                observer: "MutationObserver" in M || "WebkitMutationObserver" in M,
                passiveListener: function() {
                    let e = !1;
                    try {
                        const t = Object.defineProperty({}, "passive", {get() { e = !0 } });
                        M.addEventListener("testPassiveListener", null, t)
                    } catch (e) {}
                    return e
                }(),
                gestures: "ongesturestart" in M
            };
        class B {
            constructor(e = {}) {
                const t = this;
                t.params = e, t.eventsListeners = {}, t.params && t.params.on && Object.keys(t.params.on).forEach(e => { t.on(e, t.params.on[e]) })
            }
            on(e, t, i) { const n = this; if ("function" != typeof t) return n; const a = i ? "unshift" : "push"; return e.split(" ").forEach(e => { n.eventsListeners[e] || (n.eventsListeners[e] = []), n.eventsListeners[e][a](t) }), n }
            once(e, t, i) {
                const n = this;
                if ("function" != typeof t) return n;

                function a(...i) { t.apply(n, i), n.off(e, a), a.f7proxy && delete a.f7proxy }
                return a.f7proxy = t, n.on(e, a, i)
            }
            off(e, t) {
                const i = this;
                return i.eventsListeners ? (e.split(" ").forEach(e => {
                    void 0 === t ? i.eventsListeners[e] = [] : i.eventsListeners[e] && i.eventsListeners[e].length && i.eventsListeners[e].forEach((n, a) => {
                        (n === t || n.f7proxy && n.f7proxy === t) && i.eventsListeners[e].splice(a, 1)
                    })
                }), i) : i
            }
            emit(...e) {
                const t = this;
                if (!t.eventsListeners) return t;
                let i, n, a;
                return "string" == typeof e[0] || Array.isArray(e[0]) ? (i = e[0], n = e.slice(1, e.length), a = t) : (i = e[0].events, n = e[0].data, a = e[0].context || t), (Array.isArray(i) ? i : i.split(" ")).forEach(e => {
                    if (t.eventsListeners && t.eventsListeners[e]) {
                        const i = [];
                        t.eventsListeners[e].forEach(e => { i.push(e) }), i.forEach(e => { e.apply(a, n) })
                    }
                }), t
            }
            useModulesParams(e) {
                const t = this;
                t.modules && Object.keys(t.modules).forEach(i => {
                    const n = t.modules[i];
                    n.params && D.extend(e, n.params)
                })
            }
            useModules(e = {}) {
                const t = this;
                t.modules && Object.keys(t.modules).forEach(i => {
                    const n = t.modules[i],
                        a = e[i] || {};
                    n.instance && Object.keys(n.instance).forEach(e => {
                        const i = n.instance[e];
                        t[e] = "function" == typeof i ? i.bind(t) : i
                    }), n.on && t.on && Object.keys(n.on).forEach(e => { t.on(e, n.on[e]) }), n.create && n.create.bind(t)(a)
                })
            }
            static set components(e) { this.use && this.use(e) }
            static installModule(e, ...t) {
                const i = this;
                i.prototype.modules || (i.prototype.modules = {});
                const n = e.name || `${Object.keys(i.prototype.modules).length}_${D.now()}`;
                return i.prototype.modules[n] = e, e.proto && Object.keys(e.proto).forEach(t => { i.prototype[t] = e.proto[t] }), e.static && Object.keys(e.static).forEach(t => { i[t] = e.static[t] }), e.install && e.install.apply(i, t), i
            }
            static use(e, ...t) { const i = this; return Array.isArray(e) ? (e.forEach(e => i.installModule(e)), i) : i.installModule(e, ...t) }
        }
        var N = {
            updateSize: function() {
                const e = this;
                let t, i;
                const n = e.$el;
                t = void 0 !== e.params.width ? e.params.width : n[0].clientWidth, i = void 0 !== e.params.height ? e.params.height : n[0].clientHeight, 0 === t && e.isHorizontal() || 0 === i && e.isVertical() || (t = t - parseInt(n.css("padding-left"), 10) - parseInt(n.css("padding-right"), 10), i = i - parseInt(n.css("padding-top"), 10) - parseInt(n.css("padding-bottom"), 10), D.extend(e, { width: t, height: i, size: e.isHorizontal() ? t : i }))
            },
            updateSlides: function() {
                const e = this,
                    t = e.params,
                    { $wrapperEl: i, size: n, rtlTranslate: a, wrongRTL: r } = e,
                    s = e.virtual && t.virtual.enabled,
                    o = s ? e.virtual.slides.length : e.slides.length,
                    l = i.children(`.${e.params.slideClass}`),
                    d = s ? e.virtual.slides.length : l.length;
                let c = [];
                const u = [],
                    p = [];

                function h(e) { return !t.cssMode || e !== l.length - 1 }
                let f = t.slidesOffsetBefore;
                "function" == typeof f && (f = t.slidesOffsetBefore.call(e));
                let m = t.slidesOffsetAfter;
                "function" == typeof m && (m = t.slidesOffsetAfter.call(e));
                const g = e.snapGrid.length,
                    v = e.snapGrid.length;
                let y, w, b = t.spaceBetween,
                    x = -f,
                    T = 0,
                    S = 0;
                if (void 0 === n) return;
                "string" == typeof b && b.indexOf("%") >= 0 && (b = parseFloat(b.replace("%", "")) / 100 * n), e.virtualSize = -b, a ? l.css({ marginLeft: "", marginTop: "" }) : l.css({ marginRight: "", marginBottom: "" }), t.slidesPerColumn > 1 && (y = Math.floor(d / t.slidesPerColumn) === d / e.params.slidesPerColumn ? d : Math.ceil(d / t.slidesPerColumn) * t.slidesPerColumn, "auto" !== t.slidesPerView && "row" === t.slidesPerColumnFill && (y = Math.max(y, t.slidesPerView * t.slidesPerColumn)));
                const C = t.slidesPerColumn,
                    E = y / C,
                    A = Math.floor(d / t.slidesPerColumn);
                for (let i = 0; i < d; i += 1) {
                    w = 0;
                    const a = l.eq(i);
                    if (t.slidesPerColumn > 1) {
                        let n, r, s;
                        if ("row" === t.slidesPerColumnFill && t.slidesPerGroup > 1) {
                            const e = Math.floor(i / (t.slidesPerGroup * t.slidesPerColumn)),
                                o = i - t.slidesPerColumn * t.slidesPerGroup * e;
                            n = (r = o - (s = Math.floor(o / t.slidesPerGroup)) * t.slidesPerGroup + e * t.slidesPerGroup) + s * y / C, a.css({ "-webkit-box-ordinal-group": n, "-moz-box-ordinal-group": n, "-ms-flex-order": n, "-webkit-order": n, order: n })
                        } else "column" === t.slidesPerColumnFill ? (s = i - (r = Math.floor(i / C)) * C, (r > A || r === A && s === C - 1) && (s += 1) >= C && (s = 0, r += 1)) : r = i - (s = Math.floor(i / E)) * E;
                        a.css(`margin-${e.isHorizontal()?"top":"left"}`, 0 !== s && t.spaceBetween && `${t.spaceBetween}px`)
                    }
                    if ("none" !== a.css("display")) {
                        if ("auto" === t.slidesPerView) {
                            const i = M.getComputedStyle(a[0], null),
                                n = a[0].style.transform,
                                r = a[0].style.webkitTransform;
                            if (n && (a[0].style.transform = "none"), r && (a[0].style.webkitTransform = "none"), t.roundLengths) w = e.isHorizontal() ? a.outerWidth(!0) : a.outerHeight(!0);
                            else if (e.isHorizontal()) {
                                const e = parseFloat(i.getPropertyValue("width")),
                                    t = parseFloat(i.getPropertyValue("padding-left")),
                                    n = parseFloat(i.getPropertyValue("padding-right")),
                                    a = parseFloat(i.getPropertyValue("margin-left")),
                                    r = parseFloat(i.getPropertyValue("margin-right")),
                                    s = i.getPropertyValue("box-sizing");
                                w = s && "border-box" === s ? e + a + r : e + t + n + a + r
                            } else {
                                const e = parseFloat(i.getPropertyValue("height")),
                                    t = parseFloat(i.getPropertyValue("padding-top")),
                                    n = parseFloat(i.getPropertyValue("padding-bottom")),
                                    a = parseFloat(i.getPropertyValue("margin-top")),
                                    r = parseFloat(i.getPropertyValue("margin-bottom")),
                                    s = i.getPropertyValue("box-sizing");
                                w = s && "border-box" === s ? e + a + r : e + t + n + a + r
                            }
                            n && (a[0].style.transform = n), r && (a[0].style.webkitTransform = r), t.roundLengths && (w = Math.floor(w))
                        } else w = (n - (t.slidesPerView - 1) * b) / t.slidesPerView, t.roundLengths && (w = Math.floor(w)), l[i] && (e.isHorizontal() ? l[i].style.width = `${w}px` : l[i].style.height = `${w}px`);
                        l[i] && (l[i].swiperSlideSize = w), p.push(w), t.centeredSlides ? (x = x + w / 2 + T / 2 + b, 0 === T && 0 !== i && (x = x - n / 2 - b), 0 === i && (x = x - n / 2 - b), Math.abs(x) < .001 && (x = 0), t.roundLengths && (x = Math.floor(x)), S % t.slidesPerGroup == 0 && c.push(x), u.push(x)) : (t.roundLengths && (x = Math.floor(x)), S % t.slidesPerGroup == 0 && c.push(x), u.push(x), x = x + w + b), e.virtualSize += w + b, T = w, S += 1
                    }
                }
                let P;
                if (e.virtualSize = Math.max(e.virtualSize, n) + m, a && r && ("slide" === t.effect || "coverflow" === t.effect) && i.css({ width: `${e.virtualSize+t.spaceBetween}px` }), t.setWrapperSize && (e.isHorizontal() ? i.css({ width: `${e.virtualSize+t.spaceBetween}px` }) : i.css({ height: `${e.virtualSize+t.spaceBetween}px` })), t.slidesPerColumn > 1 && (e.virtualSize = (w + t.spaceBetween) * y, e.virtualSize = Math.ceil(e.virtualSize / t.slidesPerColumn) - t.spaceBetween, e.isHorizontal() ? i.css({ width: `${e.virtualSize+t.spaceBetween}px` }) : i.css({ height: `${e.virtualSize+t.spaceBetween}px` }), t.centeredSlides)) {
                    P = [];
                    for (let i = 0; i < c.length; i += 1) {
                        let n = c[i];
                        t.roundLengths && (n = Math.floor(n)), c[i] < e.virtualSize + c[0] && P.push(n)
                    }
                    c = P
                }
                if (!t.centeredSlides) {
                    P = [];
                    for (let i = 0; i < c.length; i += 1) {
                        let a = c[i];
                        t.roundLengths && (a = Math.floor(a)), c[i] <= e.virtualSize - n && P.push(a)
                    }
                    c = P, Math.floor(e.virtualSize - n) - Math.floor(c[c.length - 1]) > 1 && c.push(e.virtualSize - n)
                }
                if (0 === c.length && (c = [0]), 0 !== t.spaceBetween && (e.isHorizontal() ? a ? l.filter(h).css({ marginLeft: `${b}px` }) : l.filter(h).css({ marginRight: `${b}px` }) : l.filter(h).css({ marginBottom: `${b}px` })), t.centerInsufficientSlides) {
                    let e = 0;
                    if (p.forEach(i => { e += i + (t.spaceBetween ? t.spaceBetween : 0) }), (e -= t.spaceBetween) < n) {
                        const t = (n - e) / 2;
                        c.forEach((e, i) => { c[i] = e - t }), u.forEach((e, i) => { u[i] = e + t })
                    }
                }
                D.extend(e, { slides: l, snapGrid: c, slidesGrid: u, slidesSizesGrid: p }), d !== o && e.emit("slidesLengthChange"), c.length !== g && (e.params.watchOverflow && e.checkOverflow(), e.emit("snapGridLengthChange")), u.length !== v && e.emit("slidesGridLengthChange"), (t.watchSlidesProgress || t.watchSlidesVisibility) && e.updateSlidesOffset()
            },
            updateAutoHeight: function(e) {
                const t = this,
                    i = [];
                let n, a = 0;
                if ("number" == typeof e ? t.setTransition(e) : !0 === e && t.setTransition(t.params.speed), "auto" !== t.params.slidesPerView && t.params.slidesPerView > 1)
                    for (n = 0; n < Math.ceil(t.params.slidesPerView); n += 1) {
                        const e = t.activeIndex + n;
                        if (e > t.slides.length) break;
                        i.push(t.slides.eq(e)[0])
                    } else i.push(t.slides.eq(t.activeIndex)[0]);
                for (n = 0; n < i.length; n += 1)
                    if (void 0 !== i[n]) {
                        const e = i[n].offsetHeight;
                        a = e > a ? e : a
                    }
                a && t.$wrapperEl.css("height", `${a}px`)
            },
            updateSlidesOffset: function() {
                const e = this,
                    t = e.slides;
                for (let i = 0; i < t.length; i += 1) t[i].swiperSlideOffset = e.isHorizontal() ? t[i].offsetLeft : t[i].offsetTop
            },
            updateSlidesProgress: function(e = this && this.translate || 0) {
                const t = this,
                    i = t.params,
                    { slides: n, rtlTranslate: a } = t;
                if (0 === n.length) return;
                void 0 === n[0].swiperSlideOffset && t.updateSlidesOffset();
                let r = -e;
                a && (r = e), n.removeClass(i.slideVisibleClass), t.visibleSlidesIndexes = [], t.visibleSlides = [];
                for (let e = 0; e < n.length; e += 1) {
                    const s = n[e],
                        o = (r + (i.centeredSlides ? t.minTranslate() : 0) - s.swiperSlideOffset) / (s.swiperSlideSize + i.spaceBetween);
                    if (i.watchSlidesVisibility) {
                        const a = -(r - s.swiperSlideOffset),
                            o = a + t.slidesSizesGrid[e];
                        (a >= 0 && a < t.size - 1 || o > 1 && o <= t.size || a <= 0 && o >= t.size) && (t.visibleSlides.push(s), t.visibleSlidesIndexes.push(e), n.eq(e).addClass(i.slideVisibleClass))
                    }
                    s.progress = a ? -o : o
                }
                t.visibleSlides = k(t.visibleSlides)
            },
            updateProgress: function(e) {
                const t = this;
                if (void 0 === e) {
                    const i = t.rtlTranslate ? -1 : 1;
                    e = t && t.translate && t.translate * i || 0
                }
                const i = t.params,
                    n = t.maxTranslate() - t.minTranslate();
                let { progress: a, isBeginning: r, isEnd: s } = t;
                const o = r,
                    l = s;
                0 === n ? (a = 0, r = !0, s = !0) : (r = (a = (e - t.minTranslate()) / n) <= 0, s = a >= 1), D.extend(t, { progress: a, isBeginning: r, isEnd: s }), (i.watchSlidesProgress || i.watchSlidesVisibility) && t.updateSlidesProgress(e), r && !o && t.emit("reachBeginning toEdge"), s && !l && t.emit("reachEnd toEdge"), (o && !r || l && !s) && t.emit("fromEdge"), t.emit("progress", a)
            },
            updateSlidesClasses: function() {
                const e = this,
                    { slides: t, params: i, $wrapperEl: n, activeIndex: a, realIndex: r } = e,
                    s = e.virtual && i.virtual.enabled;
                let o;
                t.removeClass(`${i.slideActiveClass} ${i.slideNextClass} ${i.slidePrevClass} ${i.slideDuplicateActiveClass} ${i.slideDuplicateNextClass} ${i.slideDuplicatePrevClass}`), (o = s ? e.$wrapperEl.find(`.${i.slideClass}[data-swiper-slide-index="${a}"]`) : t.eq(a)).addClass(i.slideActiveClass), i.loop && (o.hasClass(i.slideDuplicateClass) ? n.children(`.${i.slideClass}:not(.${i.slideDuplicateClass})[data-swiper-slide-index="${r}"]`).addClass(i.slideDuplicateActiveClass) : n.children(`.${i.slideClass}.${i.slideDuplicateClass}[data-swiper-slide-index="${r}"]`).addClass(i.slideDuplicateActiveClass));
                let l = o.nextAll(`.${i.slideClass}`).eq(0).addClass(i.slideNextClass);
                i.loop && 0 === l.length && (l = t.eq(0)).addClass(i.slideNextClass);
                let d = o.prevAll(`.${i.slideClass}`).eq(0).addClass(i.slidePrevClass);
                i.loop && 0 === d.length && (d = t.eq(-1)).addClass(i.slidePrevClass), i.loop && (l.hasClass(i.slideDuplicateClass) ? n.children(`.${i.slideClass}:not(.${i.slideDuplicateClass})[data-swiper-slide-index="${l.attr("data-swiper-slide-index")}"]`).addClass(i.slideDuplicateNextClass) : n.children(`.${i.slideClass}.${i.slideDuplicateClass}[data-swiper-slide-index="${l.attr("data-swiper-slide-index")}"]`).addClass(i.slideDuplicateNextClass), d.hasClass(i.slideDuplicateClass) ? n.children(`.${i.slideClass}:not(.${i.slideDuplicateClass})[data-swiper-slide-index="${d.attr("data-swiper-slide-index")}"]`).addClass(i.slideDuplicatePrevClass) : n.children(`.${i.slideClass}.${i.slideDuplicateClass}[data-swiper-slide-index="${d.attr("data-swiper-slide-index")}"]`).addClass(i.slideDuplicatePrevClass))
            },
            updateActiveIndex: function(e) {
                const t = this,
                    i = t.rtlTranslate ? t.translate : -t.translate,
                    { slidesGrid: n, snapGrid: a, params: r, activeIndex: s, realIndex: o, snapIndex: l } = t;
                let d, c = e;
                if (void 0 === c) {
                    for (let e = 0; e < n.length; e += 1) void 0 !== n[e + 1] ? i >= n[e] && i < n[e + 1] - (n[e + 1] - n[e]) / 2 ? c = e : i >= n[e] && i < n[e + 1] && (c = e + 1) : i >= n[e] && (c = e);
                    r.normalizeSlideIndex && (c < 0 || void 0 === c) && (c = 0)
                }
                if ((d = a.indexOf(i) >= 0 ? a.indexOf(i) : Math.floor(c / r.slidesPerGroup)) >= a.length && (d = a.length - 1), c === s) return void(d !== l && (t.snapIndex = d, t.emit("snapIndexChange")));
                const u = parseInt(t.slides.eq(c).attr("data-swiper-slide-index") || c, 10);
                D.extend(t, { snapIndex: d, realIndex: u, previousIndex: s, activeIndex: c }), t.emit("activeIndexChange"), t.emit("snapIndexChange"), o !== u && t.emit("realIndexChange"), (t.initialized || t.runCallbacksOnInit) && t.emit("slideChange")
            },
            updateClickedSlide: function(e) {
                const t = this,
                    i = t.params,
                    n = k(e.target).closest(`.${i.slideClass}`)[0];
                let a = !1;
                if (n)
                    for (let e = 0; e < t.slides.length; e += 1) t.slides[e] === n && (a = !0);
                if (!n || !a) return t.clickedSlide = void 0, void(t.clickedIndex = void 0);
                t.clickedSlide = n, t.virtual && t.params.virtual.enabled ? t.clickedIndex = parseInt(k(n).attr("data-swiper-slide-index"), 10) : t.clickedIndex = k(n).index(), i.slideToClickedSlide && void 0 !== t.clickedIndex && t.clickedIndex !== t.activeIndex && t.slideToClickedSlide()
            }
        };
        var O = {
            getTranslate: function(e = (this.isHorizontal() ? "x" : "y")) { const { params: t, rtlTranslate: i, translate: n, $wrapperEl: a } = this; if (t.virtualTranslate) return i ? -n : n; if (t.cssMode) return n; let r = D.getTranslate(a[0], e); return i && (r = -r), r || 0 },
            setTranslate: function(e, t) {
                const i = this,
                    { rtlTranslate: n, params: a, $wrapperEl: r, wrapperEl: s, progress: o } = i;
                let l, d = 0,
                    c = 0;
                i.isHorizontal() ? d = n ? -e : e : c = e, a.roundLengths && (d = Math.floor(d), c = Math.floor(c)), a.cssMode ? s[i.isHorizontal() ? "scrollLeft" : "scrollTop"] = i.isHorizontal() ? -d : -c : a.virtualTranslate || r.transform(`translate3d(${d}px, ${c}px, 0px)`), i.previousTranslate = i.translate, i.translate = i.isHorizontal() ? d : c;
                const u = i.maxTranslate() - i.minTranslate();
                (l = 0 === u ? 0 : (e - i.minTranslate()) / u) !== o && i.updateProgress(e), i.emit("setTranslate", i.translate, t)
            },
            minTranslate: function() { return -this.snapGrid[0] },
            maxTranslate: function() { return -this.snapGrid[this.snapGrid.length - 1] },
            translateTo: function(e = 0, t = this.params.speed, i = !0, n = !0, a) {
                const r = this,
                    { params: s, wrapperEl: o } = r;
                if (r.animating && s.preventInteractionOnTransition) return !1;
                const l = r.minTranslate(),
                    d = r.maxTranslate();
                let c;
                if (c = n && e > l ? l : n && e < d ? d : e, r.updateProgress(c), s.cssMode) {
                    const e = r.isHorizontal();
                    return 0 === t ? o[e ? "scrollLeft" : "scrollTop"] = -c : o.scrollTo ? o.scrollTo({
                        [e ? "left" : "top"]: -c,
                        behavior: "smooth"
                    }) : o[e ? "scrollLeft" : "scrollTop"] = -c, !0
                }
                return 0 === t ? (r.setTransition(0), r.setTranslate(c), i && (r.emit("beforeTransitionStart", t, a), r.emit("transitionEnd"))) : (r.setTransition(t), r.setTranslate(c), i && (r.emit("beforeTransitionStart", t, a), r.emit("transitionStart")), r.animating || (r.animating = !0, r.onTranslateToWrapperTransitionEnd || (r.onTranslateToWrapperTransitionEnd = function(e) { r && !r.destroyed && e.target === this && (r.$wrapperEl[0].removeEventListener("transitionend", r.onTranslateToWrapperTransitionEnd), r.$wrapperEl[0].removeEventListener("webkitTransitionEnd", r.onTranslateToWrapperTransitionEnd), r.onTranslateToWrapperTransitionEnd = null, delete r.onTranslateToWrapperTransitionEnd, i && r.emit("transitionEnd")) }), r.$wrapperEl[0].addEventListener("transitionend", r.onTranslateToWrapperTransitionEnd), r.$wrapperEl[0].addEventListener("webkitTransitionEnd", r.onTranslateToWrapperTransitionEnd))), !0
            }
        };
        var H = {
            setTransition: function(e, t) {
                const i = this;
                i.params.cssMode || i.$wrapperEl.transition(e), i.emit("setTransition", e, t)
            },
            transitionStart: function(e = !0, t) {
                const i = this,
                    { activeIndex: n, params: a, previousIndex: r } = i;
                if (a.cssMode) return;
                a.autoHeight && i.updateAutoHeight();
                let s = t;
                if (s || (s = n > r ? "next" : n < r ? "prev" : "reset"), i.emit("transitionStart"), e && n !== r) {
                    if ("reset" === s) return void i.emit("slideResetTransitionStart");
                    i.emit("slideChangeTransitionStart"), "next" === s ? i.emit("slideNextTransitionStart") : i.emit("slidePrevTransitionStart")
                }
            },
            transitionEnd: function(e = !0, t) {
                const i = this,
                    { activeIndex: n, previousIndex: a, params: r } = i;
                if (i.animating = !1, r.cssMode) return;
                i.setTransition(0);
                let s = t;
                if (s || (s = n > a ? "next" : n < a ? "prev" : "reset"), i.emit("transitionEnd"), e && n !== a) {
                    if ("reset" === s) return void i.emit("slideResetTransitionEnd");
                    i.emit("slideChangeTransitionEnd"), "next" === s ? i.emit("slideNextTransitionEnd") : i.emit("slidePrevTransitionEnd")
                }
            }
        };
        var R = {
            slideTo: function(e = 0, t = this.params.speed, i = !0, n) {
                const a = this;
                let r = e;
                r < 0 && (r = 0);
                const { params: s, snapGrid: o, slidesGrid: l, previousIndex: d, activeIndex: c, rtlTranslate: u, wrapperEl: p } = a;
                if (a.animating && s.preventInteractionOnTransition) return !1;
                let h = Math.floor(r / s.slidesPerGroup);
                h >= o.length && (h = o.length - 1), (c || s.initialSlide || 0) === (d || 0) && i && a.emit("beforeSlideChangeStart");
                const f = -o[h];
                if (a.updateProgress(f), s.normalizeSlideIndex)
                    for (let e = 0; e < l.length; e += 1) - Math.floor(100 * f) >= Math.floor(100 * l[e]) && (r = e);
                if (a.initialized && r !== c) { if (!a.allowSlideNext && f < a.translate && f < a.minTranslate()) return !1; if (!a.allowSlidePrev && f > a.translate && f > a.maxTranslate() && (c || 0) !== r) return !1 }
                let m;
                if (m = r > c ? "next" : r < c ? "prev" : "reset", u && -f === a.translate || !u && f === a.translate) return a.updateActiveIndex(r), s.autoHeight && a.updateAutoHeight(), a.updateSlidesClasses(), "slide" !== s.effect && a.setTranslate(f), "reset" !== m && (a.transitionStart(i, m), a.transitionEnd(i, m)), !1;
                if (s.cssMode) {
                    const e = a.isHorizontal();
                    return 0 === t ? p[e ? "scrollLeft" : "scrollTop"] = -f : p.scrollTo ? p.scrollTo({
                        [e ? "left" : "top"]: -f,
                        behavior: "smooth"
                    }) : p[e ? "scrollLeft" : "scrollTop"] = -f, !0
                }
                return 0 === t ? (a.setTransition(0), a.setTranslate(f), a.updateActiveIndex(r), a.updateSlidesClasses(), a.emit("beforeTransitionStart", t, n), a.transitionStart(i, m), a.transitionEnd(i, m)) : (a.setTransition(t), a.setTranslate(f), a.updateActiveIndex(r), a.updateSlidesClasses(), a.emit("beforeTransitionStart", t, n), a.transitionStart(i, m), a.animating || (a.animating = !0, a.onSlideToWrapperTransitionEnd || (a.onSlideToWrapperTransitionEnd = function(e) { a && !a.destroyed && e.target === this && (a.$wrapperEl[0].removeEventListener("transitionend", a.onSlideToWrapperTransitionEnd), a.$wrapperEl[0].removeEventListener("webkitTransitionEnd", a.onSlideToWrapperTransitionEnd), a.onSlideToWrapperTransitionEnd = null, delete a.onSlideToWrapperTransitionEnd, a.transitionEnd(i, m)) }), a.$wrapperEl[0].addEventListener("transitionend", a.onSlideToWrapperTransitionEnd), a.$wrapperEl[0].addEventListener("webkitTransitionEnd", a.onSlideToWrapperTransitionEnd))), !0
            },
            slideToLoop: function(e = 0, t = this.params.speed, i = !0, n) { const a = this; let r = e; return a.params.loop && (r += a.loopedSlides), a.slideTo(r, t, i, n) },
            slideNext: function(e = this.params.speed, t = !0, i) {
                const n = this,
                    { params: a, animating: r } = n;
                return a.loop ? !r && (n.loopFix(), n._clientLeft = n.$wrapperEl[0].clientLeft, n.slideTo(n.activeIndex + a.slidesPerGroup, e, t, i)) : n.slideTo(n.activeIndex + a.slidesPerGroup, e, t, i)
            },
            slidePrev: function(e = this.params.speed, t = !0, i) {
                const n = this,
                    { params: a, animating: r, snapGrid: s, slidesGrid: o, rtlTranslate: l } = n;
                if (a.loop) {
                    if (r) return !1;
                    n.loopFix(), n._clientLeft = n.$wrapperEl[0].clientLeft
                }

                function d(e) { return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e) }
                const c = d(l ? n.translate : -n.translate),
                    u = s.map(e => d(e));
                o.map(e => d(e)), s[u.indexOf(c)];
                let p, h = s[u.indexOf(c) - 1];
                return void 0 === h && a.cssMode && s.forEach(e => {!h && c >= e && (h = e) }), void 0 !== h && (p = o.indexOf(h)) < 0 && (p = n.activeIndex - 1), n.slideTo(p, e, t, i)
            },
            slideReset: function(e = this.params.speed, t = !0, i) { return this.slideTo(this.activeIndex, e, t, i) },
            slideToClosest: function(e = this.params.speed, t = !0, i) {
                const n = this;
                let a = n.activeIndex;
                const r = Math.floor(a / n.params.slidesPerGroup);
                if (r < n.snapGrid.length - 1) {
                    const e = n.rtlTranslate ? n.translate : -n.translate,
                        t = n.snapGrid[r];
                    e - t > (n.snapGrid[r + 1] - t) / 2 && (a = n.params.slidesPerGroup)
                }
                return n.slideTo(a, e, t, i)
            },
            slideToClickedSlide: function() {
                const e = this,
                    { params: t, $wrapperEl: i } = e,
                    n = "auto" === t.slidesPerView ? e.slidesPerViewDynamic() : t.slidesPerView;
                let a, r = e.clickedIndex;
                if (t.loop) {
                    if (e.animating) return;
                    a = parseInt(k(e.clickedSlide).attr("data-swiper-slide-index"), 10), t.centeredSlides ? r < e.loopedSlides - n / 2 || r > e.slides.length - e.loopedSlides + n / 2 ? (e.loopFix(), r = i.children(`.${t.slideClass}[data-swiper-slide-index="${a}"]:not(.${t.slideDuplicateClass})`).eq(0).index(), D.nextTick(() => { e.slideTo(r) })) : e.slideTo(r) : r > e.slides.length - n ? (e.loopFix(), r = i.children(`.${t.slideClass}[data-swiper-slide-index="${a}"]:not(.${t.slideDuplicateClass})`).eq(0).index(), D.nextTick(() => { e.slideTo(r) })) : e.slideTo(r)
                } else e.slideTo(r)
            }
        };
        var $ = {
            loopCreate: function() {
                const e = this,
                    { params: t, $wrapperEl: i } = e;
                i.children(`.${t.slideClass}.${t.slideDuplicateClass}`).remove();
                let n = i.children(`.${t.slideClass}`);
                if (t.loopFillGroupWithBlank) {
                    const e = t.slidesPerGroup - n.length % t.slidesPerGroup;
                    if (e !== t.slidesPerGroup) {
                        for (let n = 0; n < e; n += 1) {
                            const e = k(A.createElement("div")).addClass(`${t.slideClass} ${t.slideBlankClass}`);
                            i.append(e)
                        }
                        n = i.children(`.${t.slideClass}`)
                    }
                }
                "auto" !== t.slidesPerView || t.loopedSlides || (t.loopedSlides = n.length), e.loopedSlides = Math.ceil(parseFloat(t.loopedSlides || t.slidesPerView, 10)), e.loopedSlides += t.loopAdditionalSlides, e.loopedSlides > n.length && (e.loopedSlides = n.length);
                const a = [],
                    r = [];
                n.each((t, i) => {
                    const s = k(i);
                    t < e.loopedSlides && r.push(i), t < n.length && t >= n.length - e.loopedSlides && a.push(i), s.attr("data-swiper-slide-index", t)
                });
                for (let e = 0; e < r.length; e += 1) i.append(k(r[e].cloneNode(!0)).addClass(t.slideDuplicateClass));
                for (let e = a.length - 1; e >= 0; e -= 1) i.prepend(k(a[e].cloneNode(!0)).addClass(t.slideDuplicateClass))
            },
            loopFix: function() {
                const e = this,
                    { params: t, activeIndex: i, slides: n, loopedSlides: a, allowSlidePrev: r, allowSlideNext: s, snapGrid: o, rtlTranslate: l } = e;
                let d;
                e.allowSlidePrev = !0, e.allowSlideNext = !0;
                const c = -o[i] - e.getTranslate();
                i < a ? (d = n.length - 3 * a + i, d += a, e.slideTo(d, 0, !1, !0) && 0 !== c && e.setTranslate((l ? -e.translate : e.translate) - c)) : ("auto" === t.slidesPerView && i >= 2 * a || i >= n.length - a) && (d = -n.length + i + a, d += a, e.slideTo(d, 0, !1, !0) && 0 !== c && e.setTranslate((l ? -e.translate : e.translate) - c));
                e.allowSlidePrev = r, e.allowSlideNext = s
            },
            loopDestroy: function() {
                const { $wrapperEl: e, params: t, slides: i } = this;
                e.children(`.${t.slideClass}.${t.slideDuplicateClass},.${t.slideClass}.${t.slideBlankClass}`).remove(), i.removeAttr("data-swiper-slide-index")
            }
        };
        var G = {
            setGrabCursor: function(e) {
                if (L.touch || !this.params.simulateTouch || this.params.watchOverflow && this.isLocked || this.params.cssMode) return;
                const t = this.el;
                t.style.cursor = "move", t.style.cursor = e ? "-webkit-grabbing" : "-webkit-grab", t.style.cursor = e ? "-moz-grabbin" : "-moz-grab", t.style.cursor = e ? "grabbing" : "grab"
            },
            unsetGrabCursor: function() { L.touch || this.params.watchOverflow && this.isLocked || this.params.cssMode || (this.el.style.cursor = "") }
        };
        var j = {
            appendSlide: function(e) {
                const t = this,
                    { $wrapperEl: i, params: n } = t;
                if (n.loop && t.loopDestroy(), "object" == typeof e && "length" in e)
                    for (let t = 0; t < e.length; t += 1) e[t] && i.append(e[t]);
                else i.append(e);
                n.loop && t.loopCreate(), n.observer && L.observer || t.update()
            },
            prependSlide: function(e) {
                const t = this,
                    { params: i, $wrapperEl: n, activeIndex: a } = t;
                i.loop && t.loopDestroy();
                let r = a + 1;
                if ("object" == typeof e && "length" in e) {
                    for (let t = 0; t < e.length; t += 1) e[t] && n.prepend(e[t]);
                    r = a + e.length
                } else n.prepend(e);
                i.loop && t.loopCreate(), i.observer && L.observer || t.update(), t.slideTo(r, 0, !1)
            },
            addSlide: function(e, t) {
                const i = this,
                    { $wrapperEl: n, params: a, activeIndex: r } = i;
                let s = r;
                a.loop && (s -= i.loopedSlides, i.loopDestroy(), i.slides = n.children(`.${a.slideClass}`));
                const o = i.slides.length;
                if (e <= 0) return void i.prependSlide(t);
                if (e >= o) return void i.appendSlide(t);
                let l = s > e ? s + 1 : s;
                const d = [];
                for (let t = o - 1; t >= e; t -= 1) {
                    const e = i.slides.eq(t);
                    e.remove(), d.unshift(e)
                }
                if ("object" == typeof t && "length" in t) {
                    for (let e = 0; e < t.length; e += 1) t[e] && n.append(t[e]);
                    l = s > e ? s + t.length : s
                } else n.append(t);
                for (let e = 0; e < d.length; e += 1) n.append(d[e]);
                a.loop && i.loopCreate(), a.observer && L.observer || i.update(), a.loop ? i.slideTo(l + i.loopedSlides, 0, !1) : i.slideTo(l, 0, !1)
            },
            removeSlide: function(e) {
                const t = this,
                    { params: i, $wrapperEl: n, activeIndex: a } = t;
                let r = a;
                i.loop && (r -= t.loopedSlides, t.loopDestroy(), t.slides = n.children(`.${i.slideClass}`));
                let s, o = r;
                if ("object" == typeof e && "length" in e) {
                    for (let i = 0; i < e.length; i += 1) s = e[i], t.slides[s] && t.slides.eq(s).remove(), s < o && (o -= 1);
                    o = Math.max(o, 0)
                } else s = e, t.slides[s] && t.slides.eq(s).remove(), s < o && (o -= 1), o = Math.max(o, 0);
                i.loop && t.loopCreate(), i.observer && L.observer || t.update(), i.loop ? t.slideTo(o + t.loopedSlides, 0, !1) : t.slideTo(o, 0, !1)
            },
            removeAllSlides: function() {
                const e = this,
                    t = [];
                for (let i = 0; i < e.slides.length; i += 1) t.push(i);
                e.removeSlide(t)
            }
        };
        const V = function() {
            const e = M.navigator.platform,
                t = M.navigator.userAgent,
                i = { ios: !1, android: !1, androidChrome: !1, desktop: !1, iphone: !1, ipod: !1, ipad: !1, edge: !1, ie: !1, firefox: !1, macos: !1, windows: !1, cordova: !(!M.cordova && !M.phonegap), phonegap: !(!M.cordova && !M.phonegap), electron: !1 },
                n = M.screen.width,
                a = M.screen.height,
                r = t.match(/(Android);?[\s\/]+([\d.]+)?/);
            let s = t.match(/(iPad).*OS\s([\d_]+)/);
            const o = t.match(/(iPod)(.*OS\s([\d_]+))?/),
                l = !s && t.match(/(iPhone\sOS|iOS)\s([\d_]+)/),
                d = t.indexOf("MSIE ") >= 0 || t.indexOf("Trident/") >= 0,
                c = t.indexOf("Edge/") >= 0,
                u = t.indexOf("Gecko/") >= 0 && t.indexOf("Firefox/") >= 0,
                p = "Win32" === e,
                h = t.toLowerCase().indexOf("electron") >= 0;
            let f = "MacIntel" === e;
            return !s && f && L.touch && (1024 === n && 1366 === a || 834 === n && 1194 === a || 834 === n && 1112 === a || 768 === n && 1024 === a) && (s = t.match(/(Version)\/([\d.]+)/), f = !1), i.ie = d, i.edge = c, i.firefox = u, r && !p && (i.os = "android", i.osVersion = r[2], i.android = !0, i.androidChrome = t.toLowerCase().indexOf("chrome") >= 0), (s || l || o) && (i.os = "ios", i.ios = !0), l && !o && (i.osVersion = l[2].replace(/_/g, "."), i.iphone = !0), s && (i.osVersion = s[2].replace(/_/g, "."), i.ipad = !0), o && (i.osVersion = o[3] ? o[3].replace(/_/g, ".") : null, i.ipod = !0), i.ios && i.osVersion && t.indexOf("Version/") >= 0 && "10" === i.osVersion.split(".")[0] && (i.osVersion = t.toLowerCase().split("version/")[1].split(" ")[0]), i.webView = !(!(l || s || o) || !t.match(/.*AppleWebKit(?!.*Safari)/i) && !M.navigator.standalone) || M.matchMedia && M.matchMedia("(display-mode: standalone)").matches, i.webview = i.webView, i.standalone = i.webView, i.desktop = !(i.ios || i.android) || h, i.desktop && (i.electron = h, i.macos = f, i.windows = p, i.macos && (i.os = "macos"), i.windows && (i.os = "windows")), i.pixelRatio = M.devicePixelRatio || 1, i
        }();

        function X() {
            const e = this,
                { params: t, el: i } = e;
            if (i && 0 === i.offsetWidth) return;
            t.breakpoints && e.setBreakpoint();
            const { allowSlideNext: n, allowSlidePrev: a, snapGrid: r } = e;
            if (e.allowSlideNext = !0, e.allowSlidePrev = !0, e.updateSize(), e.updateSlides(), t.freeMode) {
                const i = Math.min(Math.max(e.translate, e.maxTranslate()), e.minTranslate());
                e.setTranslate(i), e.updateActiveIndex(), e.updateSlidesClasses(), t.autoHeight && e.updateAutoHeight()
            } else e.updateSlidesClasses(), ("auto" === t.slidesPerView || t.slidesPerView > 1) && e.isEnd && !e.params.centeredSlides ? e.slideTo(e.slides.length - 1, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0);
            e.autoplay && e.autoplay.running && e.autoplay.paused && e.autoplay.run(), e.allowSlidePrev = a, e.allowSlideNext = n, e.params.watchOverflow && r !== e.snapGrid && e.checkOverflow()
        }
        let F = !1;

        function q() {}
        var Y = { init: !0, direction: "horizontal", touchEventsTarget: "container", initialSlide: 0, speed: 300, cssMode: !1, preventInteractionOnTransition: !1, edgeSwipeDetection: !1, edgeSwipeThreshold: 20, freeMode: !1, freeModeMomentum: !0, freeModeMomentumRatio: 1, freeModeMomentumBounce: !0, freeModeMomentumBounceRatio: 1, freeModeMomentumVelocityRatio: 1, freeModeSticky: !1, freeModeMinimumVelocity: .02, autoHeight: !1, setWrapperSize: !1, virtualTranslate: !1, effect: "slide", breakpoints: void 0, spaceBetween: 0, slidesPerView: 1, slidesPerColumn: 1, slidesPerColumnFill: "column", slidesPerGroup: 1, centeredSlides: !1, slidesOffsetBefore: 0, slidesOffsetAfter: 0, normalizeSlideIndex: !0, centerInsufficientSlides: !1, watchOverflow: !1, roundLengths: !1, touchRatio: 1, touchAngle: 45, simulateTouch: !0, shortSwipes: !0, longSwipes: !0, longSwipesRatio: .5, longSwipesMs: 300, followFinger: !0, allowTouchMove: !0, threshold: 0, touchMoveStopPropagation: !1, touchStartPreventDefault: !0, touchStartForcePreventDefault: !1, touchReleaseOnEdges: !1, uniqueNavElements: !0, resistance: !0, resistanceRatio: .85, watchSlidesProgress: !1, watchSlidesVisibility: !1, grabCursor: !1, preventClicks: !0, preventClicksPropagation: !0, slideToClickedSlide: !1, preloadImages: !0, updateOnImagesReady: !0, loop: !1, loopAdditionalSlides: 0, loopedSlides: null, loopFillGroupWithBlank: !1, allowSlidePrev: !0, allowSlideNext: !0, swipeHandler: null, noSwiping: !0, noSwipingClass: "swiper-no-swiping", noSwipingSelector: null, passiveListeners: !0, containerModifierClass: "swiper-container-", slideClass: "swiper-slide", slideBlankClass: "swiper-slide-invisible-blank", slideActiveClass: "swiper-slide-active", slideDuplicateActiveClass: "swiper-slide-duplicate-active", slideVisibleClass: "swiper-slide-visible", slideDuplicateClass: "swiper-slide-duplicate", slideNextClass: "swiper-slide-next", slideDuplicateNextClass: "swiper-slide-duplicate-next", slidePrevClass: "swiper-slide-prev", slideDuplicatePrevClass: "swiper-slide-duplicate-prev", wrapperClass: "swiper-wrapper", runCallbacksOnInit: !0 };
        const W = {
                update: N,
                translate: O,
                transition: H,
                slide: R,
                loop: $,
                grabCursor: G,
                manipulation: j,
                events: {
                    attachEvents: function() {
                        const e = this,
                            { params: t, touchEvents: i, el: n, wrapperEl: a } = e;
                        e.onTouchStart = function(e) {
                            const t = this,
                                i = t.touchEventsData,
                                { params: n, touches: a } = t;
                            if (t.animating && n.preventInteractionOnTransition) return;
                            let r = e;
                            r.originalEvent && (r = r.originalEvent);
                            const s = k(r.target);
                            if ("wrapper" === n.touchEventsTarget && !s.closest(t.wrapperEl).length) return;
                            if (i.isTouchEvent = "touchstart" === r.type, !i.isTouchEvent && "which" in r && 3 === r.which) return;
                            if (!i.isTouchEvent && "button" in r && r.button > 0) return;
                            if (i.isTouched && i.isMoved) return;
                            if (n.noSwiping && s.closest(n.noSwipingSelector ? n.noSwipingSelector : `.${n.noSwipingClass}`)[0]) return void(t.allowClick = !0);
                            if (n.swipeHandler && !s.closest(n.swipeHandler)[0]) return;
                            a.currentX = "touchstart" === r.type ? r.targetTouches[0].pageX : r.pageX, a.currentY = "touchstart" === r.type ? r.targetTouches[0].pageY : r.pageY;
                            const o = a.currentX,
                                l = a.currentY,
                                d = n.edgeSwipeDetection || n.iOSEdgeSwipeDetection,
                                c = n.edgeSwipeThreshold || n.iOSEdgeSwipeThreshold;
                            if (!d || !(o <= c || o >= M.screen.width - c)) {
                                if (D.extend(i, { isTouched: !0, isMoved: !1, allowTouchCallbacks: !0, isScrolling: void 0, startMoving: void 0 }), a.startX = o, a.startY = l, i.touchStartTime = D.now(), t.allowClick = !0, t.updateSize(), t.swipeDirection = void 0, n.threshold > 0 && (i.allowThresholdMove = !1), "touchstart" !== r.type) {
                                    let e = !0;
                                    s.is(i.formElements) && (e = !1), A.activeElement && k(A.activeElement).is(i.formElements) && A.activeElement !== s[0] && A.activeElement.blur();
                                    const a = e && t.allowTouchMove && n.touchStartPreventDefault;
                                    (n.touchStartForcePreventDefault || a) && r.preventDefault()
                                }
                                t.emit("touchStart", r)
                            }
                        }.bind(e), e.onTouchMove = function(e) {
                            const t = this,
                                i = t.touchEventsData,
                                { params: n, touches: a, rtlTranslate: r } = t;
                            let s = e;
                            if (s.originalEvent && (s = s.originalEvent), !i.isTouched) return void(i.startMoving && i.isScrolling && t.emit("touchMoveOpposite", s));
                            if (i.isTouchEvent && "mousemove" === s.type) return;
                            const o = "touchmove" === s.type && s.targetTouches && (s.targetTouches[0] || s.changedTouches[0]),
                                l = "touchmove" === s.type ? o.pageX : s.pageX,
                                d = "touchmove" === s.type ? o.pageY : s.pageY;
                            if (s.preventedByNestedSwiper) return a.startX = l, void(a.startY = d);
                            if (!t.allowTouchMove) return t.allowClick = !1, void(i.isTouched && (D.extend(a, { startX: l, startY: d, currentX: l, currentY: d }), i.touchStartTime = D.now()));
                            if (i.isTouchEvent && n.touchReleaseOnEdges && !n.loop)
                                if (t.isVertical()) { if (d < a.startY && t.translate <= t.maxTranslate() || d > a.startY && t.translate >= t.minTranslate()) return i.isTouched = !1, void(i.isMoved = !1) } else if (l < a.startX && t.translate <= t.maxTranslate() || l > a.startX && t.translate >= t.minTranslate()) return;
                            if (i.isTouchEvent && A.activeElement && s.target === A.activeElement && k(s.target).is(i.formElements)) return i.isMoved = !0, void(t.allowClick = !1);
                            if (i.allowTouchCallbacks && t.emit("touchMove", s), s.targetTouches && s.targetTouches.length > 1) return;
                            a.currentX = l, a.currentY = d;
                            const c = a.currentX - a.startX,
                                u = a.currentY - a.startY;
                            if (t.params.threshold && Math.sqrt(c ** 2 + u ** 2) < t.params.threshold) return;
                            if (void 0 === i.isScrolling) {
                                let e;
                                t.isHorizontal() && a.currentY === a.startY || t.isVertical() && a.currentX === a.startX ? i.isScrolling = !1 : c * c + u * u >= 25 && (e = 180 * Math.atan2(Math.abs(u), Math.abs(c)) / Math.PI, i.isScrolling = t.isHorizontal() ? e > n.touchAngle : 90 - e > n.touchAngle)
                            }
                            if (i.isScrolling && t.emit("touchMoveOpposite", s), void 0 === i.startMoving && (a.currentX === a.startX && a.currentY === a.startY || (i.startMoving = !0)), i.isScrolling) return void(i.isTouched = !1);
                            if (!i.startMoving) return;
                            t.allowClick = !1, n.cssMode || s.preventDefault(), n.touchMoveStopPropagation && !n.nested && s.stopPropagation(), i.isMoved || (n.loop && t.loopFix(), i.startTranslate = t.getTranslate(), t.setTransition(0), t.animating && t.$wrapperEl.trigger("webkitTransitionEnd transitionend"), i.allowMomentumBounce = !1, !n.grabCursor || !0 !== t.allowSlideNext && !0 !== t.allowSlidePrev || t.setGrabCursor(!0), t.emit("sliderFirstMove", s)), t.emit("sliderMove", s), i.isMoved = !0;
                            let p = t.isHorizontal() ? c : u;
                            a.diff = p, p *= n.touchRatio, r && (p = -p), t.swipeDirection = p > 0 ? "prev" : "next", i.currentTranslate = p + i.startTranslate;
                            let h = !0,
                                f = n.resistanceRatio;
                            if (n.touchReleaseOnEdges && (f = 0), p > 0 && i.currentTranslate > t.minTranslate() ? (h = !1, n.resistance && (i.currentTranslate = t.minTranslate() - 1 + (-t.minTranslate() + i.startTranslate + p) ** f)) : p < 0 && i.currentTranslate < t.maxTranslate() && (h = !1, n.resistance && (i.currentTranslate = t.maxTranslate() + 1 - (t.maxTranslate() - i.startTranslate - p) ** f)), h && (s.preventedByNestedSwiper = !0), !t.allowSlideNext && "next" === t.swipeDirection && i.currentTranslate < i.startTranslate && (i.currentTranslate = i.startTranslate), !t.allowSlidePrev && "prev" === t.swipeDirection && i.currentTranslate > i.startTranslate && (i.currentTranslate = i.startTranslate), n.threshold > 0) { if (!(Math.abs(p) > n.threshold || i.allowThresholdMove)) return void(i.currentTranslate = i.startTranslate); if (!i.allowThresholdMove) return i.allowThresholdMove = !0, a.startX = a.currentX, a.startY = a.currentY, i.currentTranslate = i.startTranslate, void(a.diff = t.isHorizontal() ? a.currentX - a.startX : a.currentY - a.startY) }
                            n.followFinger && !n.cssMode && ((n.freeMode || n.watchSlidesProgress || n.watchSlidesVisibility) && (t.updateActiveIndex(), t.updateSlidesClasses()), n.freeMode && (0 === i.velocities.length && i.velocities.push({ position: a[t.isHorizontal() ? "startX" : "startY"], time: i.touchStartTime }), i.velocities.push({ position: a[t.isHorizontal() ? "currentX" : "currentY"], time: D.now() })), t.updateProgress(i.currentTranslate), t.setTranslate(i.currentTranslate))
                        }.bind(e), e.onTouchEnd = function(e) {
                            const t = this,
                                i = t.touchEventsData,
                                { params: n, touches: a, rtlTranslate: r, $wrapperEl: s, slidesGrid: o, snapGrid: l } = t;
                            let d = e;
                            if (d.originalEvent && (d = d.originalEvent), i.allowTouchCallbacks && t.emit("touchEnd", d), i.allowTouchCallbacks = !1, !i.isTouched) return i.isMoved && n.grabCursor && t.setGrabCursor(!1), i.isMoved = !1, void(i.startMoving = !1);
                            n.grabCursor && i.isMoved && i.isTouched && (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) && t.setGrabCursor(!1);
                            const c = D.now(),
                                u = c - i.touchStartTime;
                            if (t.allowClick && (t.updateClickedSlide(d), t.emit("tap click", d), u < 300 && c - i.lastClickTime < 300 && t.emit("doubleTap doubleClick", d)), i.lastClickTime = D.now(), D.nextTick(() => { t.destroyed || (t.allowClick = !0) }), !i.isTouched || !i.isMoved || !t.swipeDirection || 0 === a.diff || i.currentTranslate === i.startTranslate) return i.isTouched = !1, i.isMoved = !1, void(i.startMoving = !1);
                            let p;
                            if (i.isTouched = !1, i.isMoved = !1, i.startMoving = !1, p = n.followFinger ? r ? t.translate : -t.translate : -i.currentTranslate, n.cssMode) return;
                            if (n.freeMode) {
                                if (p < -t.minTranslate()) return void t.slideTo(t.activeIndex);
                                if (p > -t.maxTranslate()) return void(t.slides.length < l.length ? t.slideTo(l.length - 1) : t.slideTo(t.slides.length - 1));
                                if (n.freeModeMomentum) {
                                    if (i.velocities.length > 1) {
                                        const e = i.velocities.pop(),
                                            a = i.velocities.pop(),
                                            r = e.position - a.position,
                                            s = e.time - a.time;
                                        t.velocity = r / s, t.velocity /= 2, Math.abs(t.velocity) < n.freeModeMinimumVelocity && (t.velocity = 0), (s > 150 || D.now() - e.time > 300) && (t.velocity = 0)
                                    } else t.velocity = 0;
                                    t.velocity *= n.freeModeMomentumVelocityRatio, i.velocities.length = 0;
                                    let e = 1e3 * n.freeModeMomentumRatio;
                                    const a = t.velocity * e;
                                    let o = t.translate + a;
                                    r && (o = -o);
                                    let d, c = !1;
                                    const u = 20 * Math.abs(t.velocity) * n.freeModeMomentumBounceRatio;
                                    let p;
                                    if (o < t.maxTranslate()) n.freeModeMomentumBounce ? (o + t.maxTranslate() < -u && (o = t.maxTranslate() - u), d = t.maxTranslate(), c = !0, i.allowMomentumBounce = !0) : o = t.maxTranslate(), n.loop && n.centeredSlides && (p = !0);
                                    else if (o > t.minTranslate()) n.freeModeMomentumBounce ? (o - t.minTranslate() > u && (o = t.minTranslate() + u), d = t.minTranslate(), c = !0, i.allowMomentumBounce = !0) : o = t.minTranslate(), n.loop && n.centeredSlides && (p = !0);
                                    else if (n.freeModeSticky) {
                                        let e;
                                        for (let t = 0; t < l.length; t += 1)
                                            if (l[t] > -o) { e = t; break }
                                        o = -(o = Math.abs(l[e] - o) < Math.abs(l[e - 1] - o) || "next" === t.swipeDirection ? l[e] : l[e - 1])
                                    }
                                    if (p && t.once("transitionEnd", () => { t.loopFix() }), 0 !== t.velocity) e = r ? Math.abs((-o - t.translate) / t.velocity) : Math.abs((o - t.translate) / t.velocity);
                                    else if (n.freeModeSticky) return void t.slideToClosest();
                                    n.freeModeMomentumBounce && c ? (t.updateProgress(d), t.setTransition(e), t.setTranslate(o), t.transitionStart(!0, t.swipeDirection), t.animating = !0, s.transitionEnd(() => { t && !t.destroyed && i.allowMomentumBounce && (t.emit("momentumBounce"), t.setTransition(n.speed), t.setTranslate(d), s.transitionEnd(() => { t && !t.destroyed && t.transitionEnd() })) })) : t.velocity ? (t.updateProgress(o), t.setTransition(e), t.setTranslate(o), t.transitionStart(!0, t.swipeDirection), t.animating || (t.animating = !0, s.transitionEnd(() => { t && !t.destroyed && t.transitionEnd() }))) : t.updateProgress(o), t.updateActiveIndex(), t.updateSlidesClasses()
                                } else if (n.freeModeSticky) return void t.slideToClosest();
                                return void((!n.freeModeMomentum || u >= n.longSwipesMs) && (t.updateProgress(), t.updateActiveIndex(), t.updateSlidesClasses()))
                            }
                            let h = 0,
                                f = t.slidesSizesGrid[0];
                            for (let e = 0; e < o.length; e += n.slidesPerGroup) void 0 !== o[e + n.slidesPerGroup] ? p >= o[e] && p < o[e + n.slidesPerGroup] && (h = e, f = o[e + n.slidesPerGroup] - o[e]) : p >= o[e] && (h = e, f = o[o.length - 1] - o[o.length - 2]);
                            const m = (p - o[h]) / f;
                            if (u > n.longSwipesMs) { if (!n.longSwipes) return void t.slideTo(t.activeIndex); "next" === t.swipeDirection && (m >= n.longSwipesRatio ? t.slideTo(h + n.slidesPerGroup) : t.slideTo(h)), "prev" === t.swipeDirection && (m > 1 - n.longSwipesRatio ? t.slideTo(h + n.slidesPerGroup) : t.slideTo(h)) } else { if (!n.shortSwipes) return void t.slideTo(t.activeIndex);!t.navigation || d.target !== t.navigation.nextEl && d.target !== t.navigation.prevEl ? ("next" === t.swipeDirection && t.slideTo(h + n.slidesPerGroup), "prev" === t.swipeDirection && t.slideTo(h)) : d.target === t.navigation.nextEl ? t.slideTo(h + n.slidesPerGroup) : t.slideTo(h) }
                        }.bind(e), t.cssMode && (e.onScroll = function() {
                            const e = this,
                                { wrapperEl: t } = e;
                            let i;
                            e.previousTranslate = e.translate, e.translate = e.isHorizontal() ? -t.scrollLeft : -t.scrollTop, -0 === e.translate && (e.translate = 0), e.updateActiveIndex(), e.updateSlidesClasses();
                            const n = e.maxTranslate() - e.minTranslate();
                            (i = 0 === n ? 0 : (e.translate - e.minTranslate()) / n) !== e.progress && e.updateProgress(e.translate), e.emit("setTranslate", e.translate, !1)
                        }.bind(e)), e.onClick = function(e) {
                            const t = this;
                            t.allowClick || (t.params.preventClicks && e.preventDefault(), t.params.preventClicksPropagation && t.animating && (e.stopPropagation(), e.stopImmediatePropagation()))
                        }.bind(e);
                        const r = !!t.nested;
                        if (!L.touch && L.pointerEvents) n.addEventListener(i.start, e.onTouchStart, !1), A.addEventListener(i.move, e.onTouchMove, r), A.addEventListener(i.end, e.onTouchEnd, !1);
                        else {
                            if (L.touch) {
                                const a = !("touchstart" !== i.start || !L.passiveListener || !t.passiveListeners) && { passive: !0, capture: !1 };
                                n.addEventListener(i.start, e.onTouchStart, a), n.addEventListener(i.move, e.onTouchMove, L.passiveListener ? { passive: !1, capture: r } : r), n.addEventListener(i.end, e.onTouchEnd, a), i.cancel && n.addEventListener(i.cancel, e.onTouchEnd, a), F || (A.addEventListener("touchstart", q), F = !0)
                            }(t.simulateTouch && !V.ios && !V.android || t.simulateTouch && !L.touch && V.ios) && (n.addEventListener("mousedown", e.onTouchStart, !1), A.addEventListener("mousemove", e.onTouchMove, r), A.addEventListener("mouseup", e.onTouchEnd, !1))
                        }(t.preventClicks || t.preventClicksPropagation) && n.addEventListener("click", e.onClick, !0), t.cssMode && a.addEventListener("scroll", e.onScroll), e.on(V.ios || V.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", X, !0)
                    },
                    detachEvents: function() {
                        const e = this,
                            { params: t, touchEvents: i, el: n, wrapperEl: a } = e,
                            r = !!t.nested;
                        if (!L.touch && L.pointerEvents) n.removeEventListener(i.start, e.onTouchStart, !1), A.removeEventListener(i.move, e.onTouchMove, r), A.removeEventListener(i.end, e.onTouchEnd, !1);
                        else {
                            if (L.touch) {
                                const a = !("onTouchStart" !== i.start || !L.passiveListener || !t.passiveListeners) && { passive: !0, capture: !1 };
                                n.removeEventListener(i.start, e.onTouchStart, a), n.removeEventListener(i.move, e.onTouchMove, r), n.removeEventListener(i.end, e.onTouchEnd, a), i.cancel && n.removeEventListener(i.cancel, e.onTouchEnd, a)
                            }(t.simulateTouch && !V.ios && !V.android || t.simulateTouch && !L.touch && V.ios) && (n.removeEventListener("mousedown", e.onTouchStart, !1), A.removeEventListener("mousemove", e.onTouchMove, r), A.removeEventListener("mouseup", e.onTouchEnd, !1))
                        }(t.preventClicks || t.preventClicksPropagation) && n.removeEventListener("click", e.onClick, !0), t.cssMode && a.removeEventListener("scroll", e.onScroll), e.off(V.ios || V.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", X)
                    }
                },
                breakpoints: {
                    setBreakpoint: function() {
                        const e = this,
                            { activeIndex: t, initialized: i, loopedSlides: n = 0, params: a, $el: r } = e,
                            s = a.breakpoints;
                        if (!s || s && 0 === Object.keys(s).length) return;
                        const o = e.getBreakpoint(s);
                        if (o && e.currentBreakpoint !== o) {
                            const l = o in s ? s[o] : void 0;
                            l && ["slidesPerView", "spaceBetween", "slidesPerGroup", "slidesPerColumn"].forEach(e => {
                                const t = l[e];
                                void 0 !== t && (l[e] = "slidesPerView" !== e || "AUTO" !== t && "auto" !== t ? "slidesPerView" === e ? parseFloat(t) : parseInt(t, 10) : "auto")
                            });
                            const d = l || e.originalParams,
                                c = a.slidesPerColumn > 1,
                                u = d.slidesPerColumn > 1;
                            c && !u ? r.removeClass(`${a.containerModifierClass}multirow ${a.containerModifierClass}multirow-column`) : !c && u && (r.addClass(`${a.containerModifierClass}multirow`), "column" === d.slidesPerColumnFill && r.addClass(`${a.containerModifierClass}multirow-column`));
                            const p = d.direction && d.direction !== a.direction,
                                h = a.loop && (d.slidesPerView !== a.slidesPerView || p);
                            p && i && e.changeDirection(), D.extend(e.params, d), D.extend(e, { allowTouchMove: e.params.allowTouchMove, allowSlideNext: e.params.allowSlideNext, allowSlidePrev: e.params.allowSlidePrev }), e.currentBreakpoint = o, h && i && (e.loopDestroy(), e.loopCreate(), e.updateSlides(), e.slideTo(t - n + e.loopedSlides, 0, !1)), e.emit("breakpoint", d)
                        }
                    },
                    getBreakpoint: function(e) {
                        if (!e) return;
                        let t = !1;
                        const i = [];
                        Object.keys(e).forEach(e => { i.push(e) }), i.sort((e, t) => parseInt(e, 10) - parseInt(t, 10));
                        for (let e = 0; e < i.length; e += 1) {
                            const n = i[e];
                            n <= M.innerWidth && (t = n)
                        }
                        return t || "max"
                    }
                },
                checkOverflow: {
                    checkOverflow: function() {
                        const e = this,
                            t = e.isLocked;
                        e.isLocked = 1 === e.snapGrid.length, e.allowSlideNext = !e.isLocked, e.allowSlidePrev = !e.isLocked, t !== e.isLocked && e.emit(e.isLocked ? "lock" : "unlock"), t && t !== e.isLocked && (e.isEnd = !1, e.navigation.update())
                    }
                },
                classes: {
                    addClasses: function() {
                        const { classNames: e, params: t, rtl: i, $el: n } = this, a = [];
                        a.push("initialized"), a.push(t.direction), t.freeMode && a.push("free-mode"), t.autoHeight && a.push("autoheight"), i && a.push("rtl"), t.slidesPerColumn > 1 && (a.push("multirow"), "column" === t.slidesPerColumnFill && a.push("multirow-column")), V.android && a.push("android"), V.ios && a.push("ios"), t.cssMode && a.push("css-mode"), a.forEach(i => { e.push(t.containerModifierClass + i) }), n.addClass(e.join(" "))
                    },
                    removeClasses: function() {
                        const { $el: e, classNames: t } = this;
                        e.removeClass(t.join(" "))
                    }
                },
                images: {
                    loadImage: function(e, t, i, n, a, r) {
                        let s;

                        function o() { r && r() }
                        e.complete && a ? o() : t ? ((s = new M.Image).onload = o, s.onerror = o, n && (s.sizes = n), i && (s.srcset = i), t && (s.src = t)) : o()
                    },
                    preloadImages: function() {
                        const e = this;

                        function t() { void 0 !== e && null !== e && e && !e.destroyed && (void 0 !== e.imagesLoaded && (e.imagesLoaded += 1), e.imagesLoaded === e.imagesToLoad.length && (e.params.updateOnImagesReady && e.update(), e.emit("imagesReady"))) }
                        e.imagesToLoad = e.$el.find("img");
                        for (let i = 0; i < e.imagesToLoad.length; i += 1) {
                            const n = e.imagesToLoad[i];
                            e.loadImage(n, n.currentSrc || n.getAttribute("src"), n.srcset || n.getAttribute("srcset"), n.sizes || n.getAttribute("sizes"), !0, t)
                        }
                    }
                }
            },
            U = {};
        class K extends B {
            constructor(...e) {
                let t, i;
                1 === e.length && e[0].constructor && e[0].constructor === Object ? i = e[0] : [t, i] = e, i || (i = {}), i = D.extend({}, i), t && !i.el && (i.el = t), super(i), Object.keys(W).forEach(e => { Object.keys(W[e]).forEach(t => { K.prototype[t] || (K.prototype[t] = W[e][t]) }) });
                const n = this;
                void 0 === n.modules && (n.modules = {}), Object.keys(n.modules).forEach(e => {
                    const t = n.modules[e];
                    if (t.params) {
                        const e = Object.keys(t.params)[0],
                            n = t.params[e];
                        if ("object" != typeof n || null === n) return;
                        if (!(e in i && "enabled" in n)) return;
                        !0 === i[e] && (i[e] = { enabled: !0 }), "object" != typeof i[e] || "enabled" in i[e] || (i[e].enabled = !0), i[e] || (i[e] = { enabled: !1 })
                    }
                });
                const a = D.extend({}, Y);
                n.useModulesParams(a), n.params = D.extend({}, a, U, i), n.originalParams = D.extend({}, n.params), n.passedParams = D.extend({}, i), n.$ = k;
                const r = k(n.params.el);
                if (!(t = r[0])) return;
                if (r.length > 1) {
                    const e = [];
                    return r.each((t, n) => {
                        const a = D.extend({}, i, { el: n });
                        e.push(new K(a))
                    }), e
                }
                let s;
                return t.swiper = n, r.data("swiper", n), t && t.shadowRoot && t.shadowRoot.querySelector ? (s = k(t.shadowRoot.querySelector(`.${n.params.wrapperClass}`))).children = (e => r.children(e)) : s = r.children(`.${n.params.wrapperClass}`), D.extend(n, { $el: r, el: t, $wrapperEl: s, wrapperEl: s[0], classNames: [], slides: k(), slidesGrid: [], snapGrid: [], slidesSizesGrid: [], isHorizontal: () => "horizontal" === n.params.direction, isVertical: () => "vertical" === n.params.direction, rtl: "rtl" === t.dir.toLowerCase() || "rtl" === r.css("direction"), rtlTranslate: "horizontal" === n.params.direction && ("rtl" === t.dir.toLowerCase() || "rtl" === r.css("direction")), wrongRTL: "-webkit-box" === s.css("display"), activeIndex: 0, realIndex: 0, isBeginning: !0, isEnd: !1, translate: 0, previousTranslate: 0, progress: 0, velocity: 0, animating: !1, allowSlideNext: n.params.allowSlideNext, allowSlidePrev: n.params.allowSlidePrev, touchEvents: function() { const e = ["touchstart", "touchmove", "touchend", "touchcancel"]; let t = ["mousedown", "mousemove", "mouseup"]; return L.pointerEvents && (t = ["pointerdown", "pointermove", "pointerup"]), n.touchEventsTouch = { start: e[0], move: e[1], end: e[2], cancel: e[3] }, n.touchEventsDesktop = { start: t[0], move: t[1], end: t[2] }, L.touch || !n.params.simulateTouch ? n.touchEventsTouch : n.touchEventsDesktop }(), touchEventsData: { isTouched: void 0, isMoved: void 0, allowTouchCallbacks: void 0, touchStartTime: void 0, isScrolling: void 0, currentTranslate: void 0, startTranslate: void 0, allowThresholdMove: void 0, formElements: "input, select, option, textarea, button, video", lastClickTime: D.now(), clickTimeout: void 0, velocities: [], allowMomentumBounce: void 0, isTouchEvent: void 0, startMoving: void 0 }, allowClick: !0, allowTouchMove: n.params.allowTouchMove, touches: { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 }, imagesToLoad: [], imagesLoaded: 0 }), n.useModules(), n.params.init && n.init(), n
            }
            slidesPerViewDynamic() {
                const { params: e, slides: t, slidesGrid: i, size: n, activeIndex: a } = this;
                let r = 1;
                if (e.centeredSlides) { let e, i = t[a].swiperSlideSize; for (let s = a + 1; s < t.length; s += 1) t[s] && !e && (r += 1, (i += t[s].swiperSlideSize) > n && (e = !0)); for (let s = a - 1; s >= 0; s -= 1) t[s] && !e && (r += 1, (i += t[s].swiperSlideSize) > n && (e = !0)) } else
                    for (let e = a + 1; e < t.length; e += 1) i[e] - i[a] < n && (r += 1);
                return r
            }
            update() {
                const e = this;
                if (!e || e.destroyed) return;
                const { snapGrid: t, params: i } = e;

                function n() {
                    const t = e.rtlTranslate ? -1 * e.translate : e.translate,
                        i = Math.min(Math.max(t, e.maxTranslate()), e.minTranslate());
                    e.setTranslate(i), e.updateActiveIndex(), e.updateSlidesClasses()
                }
                let a;
                i.breakpoints && e.setBreakpoint(), e.updateSize(), e.updateSlides(), e.updateProgress(), e.updateSlidesClasses(), e.params.freeMode ? (n(), e.params.autoHeight && e.updateAutoHeight()) : (a = ("auto" === e.params.slidesPerView || e.params.slidesPerView > 1) && e.isEnd && !e.params.centeredSlides ? e.slideTo(e.slides.length - 1, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0)) || n(), i.watchOverflow && t !== e.snapGrid && e.checkOverflow(), e.emit("update")
            }
            changeDirection(e, t = !0) {
                const i = this,
                    n = i.params.direction;
                return e || (e = "horizontal" === n ? "vertical" : "horizontal"), e === n || "horizontal" !== e && "vertical" !== e ? i : (i.$el.removeClass(`${i.params.containerModifierClass}${n}`).addClass(`${i.params.containerModifierClass}${e}`), i.params.direction = e, i.slides.each((t, i) => { "vertical" === e ? i.style.width = "" : i.style.height = "" }), i.emit("changeDirection"), t && i.update(), i)
            }
            init() {
                const e = this;
                e.initialized || (e.emit("beforeInit"), e.params.breakpoints && e.setBreakpoint(), e.addClasses(), e.params.loop && e.loopCreate(), e.updateSize(), e.updateSlides(), e.params.watchOverflow && e.checkOverflow(), e.params.grabCursor && e.setGrabCursor(), e.params.preloadImages && e.preloadImages(), e.params.loop ? e.slideTo(e.params.initialSlide + e.loopedSlides, 0, e.params.runCallbacksOnInit) : e.slideTo(e.params.initialSlide, 0, e.params.runCallbacksOnInit), e.attachEvents(), e.initialized = !0, e.emit("init"))
            }
            destroy(e = !0, t = !0) {
                const i = this,
                    { params: n, $el: a, $wrapperEl: r, slides: s } = i;
                return void 0 === i.params || i.destroyed ? null : (i.emit("beforeDestroy"), i.initialized = !1, i.detachEvents(), n.loop && i.loopDestroy(), t && (i.removeClasses(), a.removeAttr("style"), r.removeAttr("style"), s && s.length && s.removeClass([n.slideVisibleClass, n.slideActiveClass, n.slideNextClass, n.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index")), i.emit("destroy"), Object.keys(i.eventsListeners).forEach(e => { i.off(e) }), !1 !== e && (i.$el[0].swiper = null, i.$el.data("swiper", null), D.deleteProps(i)), i.destroyed = !0, null)
            }
            static extendDefaults(e) { D.extend(U, e) }
            static get extendedDefaults() { return U }
            static get defaults() { return Y }
            static get Class() { return B }
            static get $() { return k }
        }
        var J = { name: "device", proto: { device: V }, static: { device: V } },
            Q = { name: "support", proto: { support: L }, static: { support: L } };
        const _ = function() { return { isEdge: !!M.navigator.userAgent.match(/Edge/g), isSafari: function() { const e = M.navigator.userAgent.toLowerCase(); return e.indexOf("safari") >= 0 && e.indexOf("chrome") < 0 && e.indexOf("android") < 0 }(), isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(M.navigator.userAgent) } }();
        var Z = { name: "browser", proto: { browser: _ }, static: { browser: _ } },
            ee = {
                name: "resize",
                create() {
                    const e = this;
                    D.extend(e, { resize: { resizeHandler() { e && !e.destroyed && e.initialized && (e.emit("beforeResize"), e.emit("resize")) }, orientationChangeHandler() { e && !e.destroyed && e.initialized && e.emit("orientationchange") } } })
                },
                on: { init() { M.addEventListener("resize", this.resize.resizeHandler), M.addEventListener("orientationchange", this.resize.orientationChangeHandler) }, destroy() { M.removeEventListener("resize", this.resize.resizeHandler), M.removeEventListener("orientationchange", this.resize.orientationChangeHandler) } }
            };
        const te = {
            func: M.MutationObserver || M.WebkitMutationObserver,
            attach(e, t = {}) {
                const i = this,
                    n = new(0, te.func)(e => {
                        if (1 === e.length) return void i.emit("observerUpdate", e[0]);
                        const t = function() { i.emit("observerUpdate", e[0]) };
                        M.requestAnimationFrame ? M.requestAnimationFrame(t) : M.setTimeout(t, 0)
                    });
                n.observe(e, { attributes: void 0 === t.attributes || t.attributes, childList: void 0 === t.childList || t.childList, characterData: void 0 === t.characterData || t.characterData }), i.observer.observers.push(n)
            },
            init() {
                const e = this;
                if (L.observer && e.params.observer) {
                    if (e.params.observeParents) { const t = e.$el.parents(); for (let i = 0; i < t.length; i += 1) e.observer.attach(t[i]) }
                    e.observer.attach(e.$el[0], { childList: e.params.observeSlideChildren }), e.observer.attach(e.$wrapperEl[0], { attributes: !1 })
                }
            },
            destroy() { this.observer.observers.forEach(e => { e.disconnect() }), this.observer.observers = [] }
        };
        var ie = { name: "observer", params: { observer: !1, observeParents: !1, observeSlideChildren: !1 }, create() { D.extend(this, { observer: { init: te.init.bind(this), attach: te.attach.bind(this), destroy: te.destroy.bind(this), observers: [] } }) }, on: { init() { this.observer.init() }, destroy() { this.observer.destroy() } } };
        const ne = {
            update(e) {
                const t = this,
                    { slidesPerView: i, slidesPerGroup: n, centeredSlides: a } = t.params,
                    { addSlidesBefore: r, addSlidesAfter: s } = t.params.virtual,
                    { from: o, to: l, slides: d, slidesGrid: c, renderSlide: u, offset: p } = t.virtual;
                t.updateActiveIndex();
                const h = t.activeIndex || 0;
                let f, m, g;
                f = t.rtlTranslate ? "right" : t.isHorizontal() ? "left" : "top", a ? (m = Math.floor(i / 2) + n + r, g = Math.floor(i / 2) + n + s) : (m = i + (n - 1) + r, g = n + s);
                const v = Math.max((h || 0) - g, 0),
                    y = Math.min((h || 0) + m, d.length - 1),
                    w = (t.slidesGrid[v] || 0) - (t.slidesGrid[0] || 0);

                function b() { t.updateSlides(), t.updateProgress(), t.updateSlidesClasses(), t.lazy && t.params.lazy.enabled && t.lazy.load() }
                if (D.extend(t.virtual, { from: v, to: y, offset: w, slidesGrid: t.slidesGrid }), o === v && l === y && !e) return t.slidesGrid !== c && w !== p && t.slides.css(f, `${w}px`), void t.updateProgress();
                if (t.params.virtual.renderExternal) return t.params.virtual.renderExternal.call(t, { offset: w, from: v, to: y, slides: function() { const e = []; for (let t = v; t <= y; t += 1) e.push(d[t]); return e }() }), void b();
                const x = [],
                    T = [];
                if (e) t.$wrapperEl.find(`.${t.params.slideClass}`).remove();
                else
                    for (let e = o; e <= l; e += 1)(e < v || e > y) && t.$wrapperEl.find(`.${t.params.slideClass}[data-swiper-slide-index="${e}"]`).remove();
                for (let t = 0; t < d.length; t += 1) t >= v && t <= y && (void 0 === l || e ? T.push(t) : (t > l && T.push(t), t < o && x.push(t)));
                T.forEach(e => { t.$wrapperEl.append(u(d[e], e)) }), x.sort((e, t) => t - e).forEach(e => { t.$wrapperEl.prepend(u(d[e], e)) }), t.$wrapperEl.children(".swiper-slide").css(f, `${w}px`), b()
            },
            renderSlide(e, t) {
                const i = this,
                    n = i.params.virtual;
                if (n.cache && i.virtual.cache[t]) return i.virtual.cache[t];
                const a = n.renderSlide ? k(n.renderSlide.call(i, e, t)) : k(`<div class="${i.params.slideClass}" data-swiper-slide-index="${t}">${e}</div>`);
                return a.attr("data-swiper-slide-index") || a.attr("data-swiper-slide-index", t), n.cache && (i.virtual.cache[t] = a), a
            },
            appendSlide(e) {
                const t = this;
                if ("object" == typeof e && "length" in e)
                    for (let i = 0; i < e.length; i += 1) e[i] && t.virtual.slides.push(e[i]);
                else t.virtual.slides.push(e);
                t.virtual.update(!0)
            },
            prependSlide(e) {
                const t = this,
                    i = t.activeIndex;
                let n = i + 1,
                    a = 1;
                if (Array.isArray(e)) {
                    for (let i = 0; i < e.length; i += 1) e[i] && t.virtual.slides.unshift(e[i]);
                    n = i + e.length, a = e.length
                } else t.virtual.slides.unshift(e);
                if (t.params.virtual.cache) {
                    const e = t.virtual.cache,
                        i = {};
                    Object.keys(e).forEach(t => {
                        const n = e[t],
                            r = n.attr("data-swiper-slide-index");
                        r && n.attr("data-swiper-slide-index", parseInt(r, 10) + 1), i[parseInt(t, 10) + a] = n
                    }), t.virtual.cache = i
                }
                t.virtual.update(!0), t.slideTo(n, 0)
            },
            removeSlide(e) {
                const t = this;
                if (void 0 === e || null === e) return;
                let i = t.activeIndex;
                if (Array.isArray(e))
                    for (let n = e.length - 1; n >= 0; n -= 1) t.virtual.slides.splice(e[n], 1), t.params.virtual.cache && delete t.virtual.cache[e[n]], e[n] < i && (i -= 1), i = Math.max(i, 0);
                else t.virtual.slides.splice(e, 1), t.params.virtual.cache && delete t.virtual.cache[e], e < i && (i -= 1), i = Math.max(i, 0);
                t.virtual.update(!0), t.slideTo(i, 0)
            },
            removeAllSlides() {
                const e = this;
                e.virtual.slides = [], e.params.virtual.cache && (e.virtual.cache = {}), e.virtual.update(!0), e.slideTo(0, 0)
            }
        };
        var ae = {
            name: "virtual",
            params: { virtual: { enabled: !1, slides: [], cache: !0, renderSlide: null, renderExternal: null, addSlidesBefore: 0, addSlidesAfter: 0 } },
            create() { D.extend(this, { virtual: { update: ne.update.bind(this), appendSlide: ne.appendSlide.bind(this), prependSlide: ne.prependSlide.bind(this), removeSlide: ne.removeSlide.bind(this), removeAllSlides: ne.removeAllSlides.bind(this), renderSlide: ne.renderSlide.bind(this), slides: this.params.virtual.slides, cache: {} } }) },
            on: {
                beforeInit() {
                    const e = this;
                    if (!e.params.virtual.enabled) return;
                    e.classNames.push(`${e.params.containerModifierClass}virtual`);
                    const t = { watchSlidesProgress: !0 };
                    D.extend(e.params, t), D.extend(e.originalParams, t), e.params.initialSlide || e.virtual.update()
                },
                setTranslate() { this.params.virtual.enabled && this.virtual.update() }
            }
        };
        const re = {
            handle(e) {
                const t = this,
                    { rtlTranslate: i } = t;
                let n = e;
                n.originalEvent && (n = n.originalEvent);
                const a = n.keyCode || n.charCode;
                if (!t.allowSlideNext && (t.isHorizontal() && 39 === a || t.isVertical() && 40 === a || 34 === a)) return !1;
                if (!t.allowSlidePrev && (t.isHorizontal() && 37 === a || t.isVertical() && 38 === a || 33 === a)) return !1;
                if (!(n.shiftKey || n.altKey || n.ctrlKey || n.metaKey || A.activeElement && A.activeElement.nodeName && ("input" === A.activeElement.nodeName.toLowerCase() || "textarea" === A.activeElement.nodeName.toLowerCase()))) {
                    if (t.params.keyboard.onlyInViewport && (33 === a || 34 === a || 37 === a || 39 === a || 38 === a || 40 === a)) {
                        let e = !1;
                        if (t.$el.parents(`.${t.params.slideClass}`).length > 0 && 0 === t.$el.parents(`.${t.params.slideActiveClass}`).length) return;
                        const n = M.innerWidth,
                            a = M.innerHeight,
                            r = t.$el.offset();
                        i && (r.left -= t.$el[0].scrollLeft);
                        const s = [
                            [r.left, r.top],
                            [r.left + t.width, r.top],
                            [r.left, r.top + t.height],
                            [r.left + t.width, r.top + t.height]
                        ];
                        for (let t = 0; t < s.length; t += 1) {
                            const i = s[t];
                            i[0] >= 0 && i[0] <= n && i[1] >= 0 && i[1] <= a && (e = !0)
                        }
                        if (!e) return
                    }
                    t.isHorizontal() ? (33 !== a && 34 !== a && 37 !== a && 39 !== a || (n.preventDefault ? n.preventDefault() : n.returnValue = !1), (34 !== a && 39 !== a || i) && (33 !== a && 37 !== a || !i) || t.slideNext(), (33 !== a && 37 !== a || i) && (34 !== a && 39 !== a || !i) || t.slidePrev()) : (33 !== a && 34 !== a && 38 !== a && 40 !== a || (n.preventDefault ? n.preventDefault() : n.returnValue = !1), 34 !== a && 40 !== a || t.slideNext(), 33 !== a && 38 !== a || t.slidePrev()), t.emit("keyPress", a)
                }
            },
            enable() { this.keyboard.enabled || (k(A).on("keydown", this.keyboard.handle), this.keyboard.enabled = !0) },
            disable() { this.keyboard.enabled && (k(A).off("keydown", this.keyboard.handle), this.keyboard.enabled = !1) }
        };
        var se = {
            name: "keyboard",
            params: { keyboard: { enabled: !1, onlyInViewport: !0 } },
            create() { D.extend(this, { keyboard: { enabled: !1, enable: re.enable.bind(this), disable: re.disable.bind(this), handle: re.handle.bind(this) } }) },
            on: {
                init() {
                    const e = this;
                    e.params.keyboard.enabled && e.keyboard.enable()
                },
                destroy() {
                    const e = this;
                    e.keyboard.enabled && e.keyboard.disable()
                }
            }
        };
        const oe = {
            lastScrollTime: D.now(),
            event: () => M.navigator.userAgent.indexOf("firefox") > -1 ? "DOMMouseScroll" : function() {
                let e = "onwheel" in A;
                if (!e) {
                    const t = A.createElement("div");
                    t.setAttribute("onwheel", "return;"), e = "function" == typeof t.onwheel
                }
                return !e && A.implementation && A.implementation.hasFeature && !0 !== A.implementation.hasFeature("", "") && (e = A.implementation.hasFeature("Events.wheel", "3.0")), e
            }() ? "wheel" : "mousewheel",
            normalize(e) {
                let t = 0,
                    i = 0,
                    n = 0,
                    a = 0;
                return "detail" in e && (i = e.detail), "wheelDelta" in e && (i = -e.wheelDelta / 120), "wheelDeltaY" in e && (i = -e.wheelDeltaY / 120), "wheelDeltaX" in e && (t = -e.wheelDeltaX / 120), "axis" in e && e.axis === e.HORIZONTAL_AXIS && (t = i, i = 0), n = 10 * t, a = 10 * i, "deltaY" in e && (a = e.deltaY), "deltaX" in e && (n = e.deltaX), e.shiftKey && !n && (n = a, a = 0), (n || a) && e.deltaMode && (1 === e.deltaMode ? (n *= 40, a *= 40) : (n *= 800, a *= 800)), n && !t && (t = n < 1 ? -1 : 1), a && !i && (i = a < 1 ? -1 : 1), { spinX: t, spinY: i, pixelX: n, pixelY: a }
            },
            handleMouseEnter() { this.mouseEntered = !0 },
            handleMouseLeave() { this.mouseEntered = !1 },
            handle(e) {
                let t = e;
                const i = this,
                    n = i.params.mousewheel;
                if (i.params.cssMode && t.preventDefault(), !i.mouseEntered && !n.releaseOnEdges) return !0;
                t.originalEvent && (t = t.originalEvent);
                let a = 0;
                const r = i.rtlTranslate ? -1 : 1,
                    s = oe.normalize(t);
                if (n.forceToAxis)
                    if (i.isHorizontal()) {
                        if (!(Math.abs(s.pixelX) > Math.abs(s.pixelY))) return !0;
                        a = s.pixelX * r
                    } else {
                        if (!(Math.abs(s.pixelY) > Math.abs(s.pixelX))) return !0;
                        a = s.pixelY
                    }
                else a = Math.abs(s.pixelX) > Math.abs(s.pixelY) ? -s.pixelX * r : -s.pixelY;
                if (0 === a) return !0;
                if (n.invert && (a = -a), i.params.freeMode) {
                    i.params.loop && i.loopFix();
                    let e = i.getTranslate() + a * n.sensitivity;
                    const r = i.isBeginning,
                        s = i.isEnd;
                    if (e >= i.minTranslate() && (e = i.minTranslate()), e <= i.maxTranslate() && (e = i.maxTranslate()), i.setTransition(0), i.setTranslate(e), i.updateProgress(), i.updateActiveIndex(), i.updateSlidesClasses(), (!r && i.isBeginning || !s && i.isEnd) && i.updateSlidesClasses(), i.params.freeModeSticky && (clearTimeout(i.mousewheel.timeout), i.mousewheel.timeout = D.nextTick(() => { i.slideToClosest() }, 300)), i.emit("scroll", t), i.params.autoplay && i.params.autoplayDisableOnInteraction && i.autoplay.stop(), e === i.minTranslate() || e === i.maxTranslate()) return !0
                } else {
                    if (D.now() - i.mousewheel.lastScrollTime > 60)
                        if (a < 0)
                            if (i.isEnd && !i.params.loop || i.animating) { if (n.releaseOnEdges) return !0 } else i.slideNext(), i.emit("scroll", t);
                    else if (i.isBeginning && !i.params.loop || i.animating) { if (n.releaseOnEdges) return !0 } else i.slidePrev(), i.emit("scroll", t);
                    i.mousewheel.lastScrollTime = (new M.Date).getTime()
                }
                return t.preventDefault ? t.preventDefault() : t.returnValue = !1, !1
            },
            enable() {
                const e = this,
                    t = oe.event();
                if (e.params.cssMode) return e.wrapperEl.removeEventListener(t, e.mousewheel.handle), !0;
                if (!t) return !1;
                if (e.mousewheel.enabled) return !1;
                let i = e.$el;
                return "container" !== e.params.mousewheel.eventsTarged && (i = k(e.params.mousewheel.eventsTarged)), i.on("mouseenter", e.mousewheel.handleMouseEnter), i.on("mouseleave", e.mousewheel.handleMouseLeave), i.on(t, e.mousewheel.handle), e.mousewheel.enabled = !0, !0
            },
            disable() {
                const e = this,
                    t = oe.event();
                if (e.params.cssMode) return e.wrapperEl.addEventListener(t, e.mousewheel.handle), !0;
                if (!t) return !1;
                if (!e.mousewheel.enabled) return !1;
                let i = e.$el;
                return "container" !== e.params.mousewheel.eventsTarged && (i = k(e.params.mousewheel.eventsTarged)), i.off(t, e.mousewheel.handle), e.mousewheel.enabled = !1, !0
            }
        };
        const le = {
            update() {
                const e = this,
                    t = e.params.navigation;
                if (e.params.loop) return;
                const { $nextEl: i, $prevEl: n } = e.navigation;
                n && n.length > 0 && (e.isBeginning ? n.addClass(t.disabledClass) : n.removeClass(t.disabledClass), n[e.params.watchOverflow && e.isLocked ? "addClass" : "removeClass"](t.lockClass)), i && i.length > 0 && (e.isEnd ? i.addClass(t.disabledClass) : i.removeClass(t.disabledClass), i[e.params.watchOverflow && e.isLocked ? "addClass" : "removeClass"](t.lockClass))
            },
            onPrevClick(e) { e.preventDefault(), this.isBeginning && !this.params.loop || this.slidePrev() },
            onNextClick(e) { e.preventDefault(), this.isEnd && !this.params.loop || this.slideNext() },
            init() {
                const e = this,
                    t = e.params.navigation;
                if (!t.nextEl && !t.prevEl) return;
                let i, n;
                t.nextEl && (i = k(t.nextEl), e.params.uniqueNavElements && "string" == typeof t.nextEl && i.length > 1 && 1 === e.$el.find(t.nextEl).length && (i = e.$el.find(t.nextEl))), t.prevEl && (n = k(t.prevEl), e.params.uniqueNavElements && "string" == typeof t.prevEl && n.length > 1 && 1 === e.$el.find(t.prevEl).length && (n = e.$el.find(t.prevEl))), i && i.length > 0 && i.on("click", e.navigation.onNextClick), n && n.length > 0 && n.on("click", e.navigation.onPrevClick), D.extend(e.navigation, { $nextEl: i, nextEl: i && i[0], $prevEl: n, prevEl: n && n[0] })
            },
            destroy() {
                const e = this,
                    { $nextEl: t, $prevEl: i } = e.navigation;
                t && t.length && (t.off("click", e.navigation.onNextClick), t.removeClass(e.params.navigation.disabledClass)), i && i.length && (i.off("click", e.navigation.onPrevClick), i.removeClass(e.params.navigation.disabledClass))
            }
        };
        const de = {
            update() {
                const e = this,
                    t = e.rtl,
                    i = e.params.pagination;
                if (!i.el || !e.pagination.el || !e.pagination.$el || 0 === e.pagination.$el.length) return;
                const n = e.virtual && e.params.virtual.enabled ? e.virtual.slides.length : e.slides.length,
                    a = e.pagination.$el;
                let r;
                const s = e.params.loop ? Math.ceil((n - 2 * e.loopedSlides) / e.params.slidesPerGroup) : e.snapGrid.length;
                if (e.params.loop ? ((r = Math.ceil((e.activeIndex - e.loopedSlides) / e.params.slidesPerGroup)) > n - 1 - 2 * e.loopedSlides && (r -= n - 2 * e.loopedSlides), r > s - 1 && (r -= s), r < 0 && "bullets" !== e.params.paginationType && (r = s + r)) : r = void 0 !== e.snapIndex ? e.snapIndex : e.activeIndex || 0, "bullets" === i.type && e.pagination.bullets && e.pagination.bullets.length > 0) {
                    const n = e.pagination.bullets;
                    let s, o, l;
                    if (i.dynamicBullets && (e.pagination.bulletSize = n.eq(0)[e.isHorizontal() ? "outerWidth" : "outerHeight"](!0), a.css(e.isHorizontal() ? "width" : "height", `${e.pagination.bulletSize*(i.dynamicMainBullets+4)}px`), i.dynamicMainBullets > 1 && void 0 !== e.previousIndex && (e.pagination.dynamicBulletIndex += r - e.previousIndex, e.pagination.dynamicBulletIndex > i.dynamicMainBullets - 1 ? e.pagination.dynamicBulletIndex = i.dynamicMainBullets - 1 : e.pagination.dynamicBulletIndex < 0 && (e.pagination.dynamicBulletIndex = 0)), s = r - e.pagination.dynamicBulletIndex, l = ((o = s + (Math.min(n.length, i.dynamicMainBullets) - 1)) + s) / 2), n.removeClass(`${i.bulletActiveClass} ${i.bulletActiveClass}-next ${i.bulletActiveClass}-next-next ${i.bulletActiveClass}-prev ${i.bulletActiveClass}-prev-prev ${i.bulletActiveClass}-main`), a.length > 1) n.each((e, t) => {
                        const n = k(t),
                            a = n.index();
                        a === r && n.addClass(i.bulletActiveClass), i.dynamicBullets && (a >= s && a <= o && n.addClass(`${i.bulletActiveClass}-main`), a === s && n.prev().addClass(`${i.bulletActiveClass}-prev`).prev().addClass(`${i.bulletActiveClass}-prev-prev`), a === o && n.next().addClass(`${i.bulletActiveClass}-next`).next().addClass(`${i.bulletActiveClass}-next-next`))
                    });
                    else {
                        const t = n.eq(r),
                            a = t.index();
                        if (t.addClass(i.bulletActiveClass), i.dynamicBullets) {
                            const t = n.eq(s),
                                r = n.eq(o);
                            for (let e = s; e <= o; e += 1) n.eq(e).addClass(`${i.bulletActiveClass}-main`);
                            if (e.params.loop)
                                if (a >= n.length - i.dynamicMainBullets) {
                                    for (let e = i.dynamicMainBullets; e >= 0; e -= 1) n.eq(n.length - e).addClass(`${i.bulletActiveClass}-main`);
                                    n.eq(n.length - i.dynamicMainBullets - 1).addClass(`${i.bulletActiveClass}-prev`)
                                } else t.prev().addClass(`${i.bulletActiveClass}-prev`).prev().addClass(`${i.bulletActiveClass}-prev-prev`), r.next().addClass(`${i.bulletActiveClass}-next`).next().addClass(`${i.bulletActiveClass}-next-next`);
                            else t.prev().addClass(`${i.bulletActiveClass}-prev`).prev().addClass(`${i.bulletActiveClass}-prev-prev`), r.next().addClass(`${i.bulletActiveClass}-next`).next().addClass(`${i.bulletActiveClass}-next-next`)
                        }
                    }
                    if (i.dynamicBullets) {
                        const a = Math.min(n.length, i.dynamicMainBullets + 4),
                            r = (e.pagination.bulletSize * a - e.pagination.bulletSize) / 2 - l * e.pagination.bulletSize,
                            s = t ? "right" : "left";
                        n.css(e.isHorizontal() ? s : "top", `${r}px`)
                    }
                }
                if ("fraction" === i.type && (a.find(`.${i.currentClass}`).text(i.formatFractionCurrent(r + 1)), a.find(`.${i.totalClass}`).text(i.formatFractionTotal(s))), "progressbar" === i.type) {
                    let t;
                    t = i.progressbarOpposite ? e.isHorizontal() ? "vertical" : "horizontal" : e.isHorizontal() ? "horizontal" : "vertical";
                    const n = (r + 1) / s;
                    let o = 1,
                        l = 1;
                    "horizontal" === t ? o = n : l = n, a.find(`.${i.progressbarFillClass}`).transform(`translate3d(0,0,0) scaleX(${o}) scaleY(${l})`).transition(e.params.speed)
                }
                "custom" === i.type && i.renderCustom ? (a.html(i.renderCustom(e, r + 1, s)), e.emit("paginationRender", e, a[0])) : e.emit("paginationUpdate", e, a[0]), a[e.params.watchOverflow && e.isLocked ? "addClass" : "removeClass"](i.lockClass)
            },
            render() {
                const e = this,
                    t = e.params.pagination;
                if (!t.el || !e.pagination.el || !e.pagination.$el || 0 === e.pagination.$el.length) return;
                const i = e.virtual && e.params.virtual.enabled ? e.virtual.slides.length : e.slides.length,
                    n = e.pagination.$el;
                let a = "";
                if ("bullets" === t.type) {
                    const r = e.params.loop ? Math.ceil((i - 2 * e.loopedSlides) / e.params.slidesPerGroup) : e.snapGrid.length;
                    for (let i = 0; i < r; i += 1) t.renderBullet ? a += t.renderBullet.call(e, i, t.bulletClass) : a += `<${t.bulletElement} class="${t.bulletClass}"></${t.bulletElement}>`;
                    n.html(a), e.pagination.bullets = n.find(`.${t.bulletClass}`)
                }
                "fraction" === t.type && (a = t.renderFraction ? t.renderFraction.call(e, t.currentClass, t.totalClass) : `<span class="${t.currentClass}"></span>` + " / " + `<span class="${t.totalClass}"></span>`, n.html(a)), "progressbar" === t.type && (a = t.renderProgressbar ? t.renderProgressbar.call(e, t.progressbarFillClass) : `<span class="${t.progressbarFillClass}"></span>`, n.html(a)), "custom" !== t.type && e.emit("paginationRender", e.pagination.$el[0])
            },
            init() {
                const e = this,
                    t = e.params.pagination;
                if (!t.el) return;
                let i = k(t.el);
                0 !== i.length && (e.params.uniqueNavElements && "string" == typeof t.el && i.length > 1 && 1 === e.$el.find(t.el).length && (i = e.$el.find(t.el)), "bullets" === t.type && t.clickable && i.addClass(t.clickableClass), i.addClass(t.modifierClass + t.type), "bullets" === t.type && t.dynamicBullets && (i.addClass(`${t.modifierClass}${t.type}-dynamic`), e.pagination.dynamicBulletIndex = 0, t.dynamicMainBullets < 1 && (t.dynamicMainBullets = 1)), "progressbar" === t.type && t.progressbarOpposite && i.addClass(t.progressbarOppositeClass), t.clickable && i.on("click", `.${t.bulletClass}`, function(t) {
                    t.preventDefault();
                    let i = k(this).index() * e.params.slidesPerGroup;
                    e.params.loop && (i += e.loopedSlides), e.slideTo(i)
                }), D.extend(e.pagination, { $el: i, el: i[0] }))
            },
            destroy() {
                const e = this.params.pagination;
                if (!e.el || !this.pagination.el || !this.pagination.$el || 0 === this.pagination.$el.length) return;
                const t = this.pagination.$el;
                t.removeClass(e.hiddenClass), t.removeClass(e.modifierClass + e.type), this.pagination.bullets && this.pagination.bullets.removeClass(e.bulletActiveClass), e.clickable && t.off("click", `.${e.bulletClass}`)
            }
        };
        const ce = {
            setTranslate() {
                const e = this;
                if (!e.params.scrollbar.el || !e.scrollbar.el) return;
                const { scrollbar: t, rtlTranslate: i, progress: n } = e, { dragSize: a, trackSize: r, $dragEl: s, $el: o } = t, l = e.params.scrollbar;
                let d = a,
                    c = (r - a) * n;
                i ? (c = -c) > 0 ? (d = a - c, c = 0) : -c + a > r && (d = r + c) : c < 0 ? (d = a + c, c = 0) : c + a > r && (d = r - c), e.isHorizontal() ? (s.transform(`translate3d(${c}px, 0, 0)`), s[0].style.width = `${d}px`) : (s.transform(`translate3d(0px, ${c}px, 0)`), s[0].style.height = `${d}px`), l.hide && (clearTimeout(e.scrollbar.timeout), o[0].style.opacity = 1, e.scrollbar.timeout = setTimeout(() => { o[0].style.opacity = 0, o.transition(400) }, 1e3))
            },
            setTransition(e) { this.params.scrollbar.el && this.scrollbar.el && this.scrollbar.$dragEl.transition(e) },
            updateSize() {
                const e = this;
                if (!e.params.scrollbar.el || !e.scrollbar.el) return;
                const { scrollbar: t } = e, { $dragEl: i, $el: n } = t;
                i[0].style.width = "", i[0].style.height = "";
                const a = e.isHorizontal() ? n[0].offsetWidth : n[0].offsetHeight,
                    r = e.size / e.virtualSize,
                    s = r * (a / e.size);
                let o;
                o = "auto" === e.params.scrollbar.dragSize ? a * r : parseInt(e.params.scrollbar.dragSize, 10), e.isHorizontal() ? i[0].style.width = `${o}px` : i[0].style.height = `${o}px`, n[0].style.display = r >= 1 ? "none" : "", e.params.scrollbar.hide && (n[0].style.opacity = 0), D.extend(t, { trackSize: a, divider: r, moveDivider: s, dragSize: o }), t.$el[e.params.watchOverflow && e.isLocked ? "addClass" : "removeClass"](e.params.scrollbar.lockClass)
            },
            getPointerPosition(e) { return this.isHorizontal() ? "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].clientX : e.clientX : "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].clientY : e.clientY },
            setDragPosition(e) {
                const { scrollbar: t, rtlTranslate: i } = this, { $el: n, dragSize: a, trackSize: r, dragStartPos: s } = t;
                let o;
                o = (t.getPointerPosition(e) - n.offset()[this.isHorizontal() ? "left" : "top"] - (null !== s ? s : a / 2)) / (r - a), o = Math.max(Math.min(o, 1), 0), i && (o = 1 - o);
                const l = this.minTranslate() + (this.maxTranslate() - this.minTranslate()) * o;
                this.updateProgress(l), this.setTranslate(l), this.updateActiveIndex(), this.updateSlidesClasses()
            },
            onDragStart(e) {
                const t = this,
                    i = t.params.scrollbar,
                    { scrollbar: n, $wrapperEl: a } = t,
                    { $el: r, $dragEl: s } = n;
                t.scrollbar.isTouched = !0, t.scrollbar.dragStartPos = e.target === s[0] || e.target === s ? n.getPointerPosition(e) - e.target.getBoundingClientRect()[t.isHorizontal() ? "left" : "top"] : null, e.preventDefault(), e.stopPropagation(), a.transition(100), s.transition(100), n.setDragPosition(e), clearTimeout(t.scrollbar.dragTimeout), r.transition(0), i.hide && r.css("opacity", 1), t.params.cssMode && t.$wrapperEl.css("scroll-snap-type", "none"), t.emit("scrollbarDragStart", e)
            },
            onDragMove(e) {
                const { scrollbar: t, $wrapperEl: i } = this, { $el: n, $dragEl: a } = t;
                this.scrollbar.isTouched && (e.preventDefault ? e.preventDefault() : e.returnValue = !1, t.setDragPosition(e), i.transition(0), n.transition(0), a.transition(0), this.emit("scrollbarDragMove", e))
            },
            onDragEnd(e) {
                const t = this,
                    i = t.params.scrollbar,
                    { scrollbar: n, $wrapperEl: a } = t,
                    { $el: r } = n;
                t.scrollbar.isTouched && (t.scrollbar.isTouched = !1, t.params.cssMode && (t.$wrapperEl.css("scroll-snap-type", ""), a.transition("")), i.hide && (clearTimeout(t.scrollbar.dragTimeout), t.scrollbar.dragTimeout = D.nextTick(() => { r.css("opacity", 0), r.transition(400) }, 1e3)), t.emit("scrollbarDragEnd", e), i.snapOnRelease && t.slideToClosest())
            },
            enableDraggable() {
                const e = this;
                if (!e.params.scrollbar.el) return;
                const { scrollbar: t, touchEventsTouch: i, touchEventsDesktop: n, params: a } = e, r = t.$el[0], s = !(!L.passiveListener || !a.passiveListeners) && { passive: !1, capture: !1 }, o = !(!L.passiveListener || !a.passiveListeners) && { passive: !0, capture: !1 };
                L.touch ? (r.addEventListener(i.start, e.scrollbar.onDragStart, s), r.addEventListener(i.move, e.scrollbar.onDragMove, s), r.addEventListener(i.end, e.scrollbar.onDragEnd, o)) : (r.addEventListener(n.start, e.scrollbar.onDragStart, s), A.addEventListener(n.move, e.scrollbar.onDragMove, s), A.addEventListener(n.end, e.scrollbar.onDragEnd, o))
            },
            disableDraggable() {
                const e = this;
                if (!e.params.scrollbar.el) return;
                const { scrollbar: t, touchEventsTouch: i, touchEventsDesktop: n, params: a } = e, r = t.$el[0], s = !(!L.passiveListener || !a.passiveListeners) && { passive: !1, capture: !1 }, o = !(!L.passiveListener || !a.passiveListeners) && { passive: !0, capture: !1 };
                L.touch ? (r.removeEventListener(i.start, e.scrollbar.onDragStart, s), r.removeEventListener(i.move, e.scrollbar.onDragMove, s), r.removeEventListener(i.end, e.scrollbar.onDragEnd, o)) : (r.removeEventListener(n.start, e.scrollbar.onDragStart, s), A.removeEventListener(n.move, e.scrollbar.onDragMove, s), A.removeEventListener(n.end, e.scrollbar.onDragEnd, o))
            },
            init() {
                const e = this;
                if (!e.params.scrollbar.el) return;
                const { scrollbar: t, $el: i } = e, n = e.params.scrollbar;
                let a = k(n.el);
                e.params.uniqueNavElements && "string" == typeof n.el && a.length > 1 && 1 === i.find(n.el).length && (a = i.find(n.el));
                let r = a.find(`.${e.params.scrollbar.dragClass}`);
                0 === r.length && (r = k(`<div class="${e.params.scrollbar.dragClass}"></div>`), a.append(r)), D.extend(t, { $el: a, el: a[0], $dragEl: r, dragEl: r[0] }), n.draggable && t.enableDraggable()
            },
            destroy() { this.scrollbar.disableDraggable() }
        };
        const ue = {
            setTransform(e, t) {
                const { rtl: i } = this, n = k(e), a = i ? -1 : 1, r = n.attr("data-swiper-parallax") || "0";
                let s = n.attr("data-swiper-parallax-x"),
                    o = n.attr("data-swiper-parallax-y");
                const l = n.attr("data-swiper-parallax-scale"),
                    d = n.attr("data-swiper-parallax-opacity");
                if (s || o ? (s = s || "0", o = o || "0") : this.isHorizontal() ? (s = r, o = "0") : (o = r, s = "0"), s = s.indexOf("%") >= 0 ? `${parseInt(s,10)*t*a}%` : `${s*t*a}px`, o = o.indexOf("%") >= 0 ? `${parseInt(o,10)*t}%` : `${o*t}px`, void 0 !== d && null !== d) {
                    const e = d - (d - 1) * (1 - Math.abs(t));
                    n[0].style.opacity = e
                }
                if (void 0 === l || null === l) n.transform(`translate3d(${s}, ${o}, 0px)`);
                else {
                    const e = l - (l - 1) * (1 - Math.abs(t));
                    n.transform(`translate3d(${s}, ${o}, 0px) scale(${e})`)
                }
            },
            setTranslate() {
                const e = this,
                    { $el: t, slides: i, progress: n, snapGrid: a } = e;
                t.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((t, i) => { e.parallax.setTransform(i, n) }), i.each((t, i) => {
                    let r = i.progress;
                    e.params.slidesPerGroup > 1 && "auto" !== e.params.slidesPerView && (r += Math.ceil(t / 2) - n * (a.length - 1)), r = Math.min(Math.max(r, -1), 1), k(i).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((t, i) => { e.parallax.setTransform(i, r) })
                })
            },
            setTransition(e = this.params.speed) {
                const { $el: t } = this;
                t.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((t, i) => {
                    const n = k(i);
                    let a = parseInt(n.attr("data-swiper-parallax-duration"), 10) || e;
                    0 === e && (a = 0), n.transition(a)
                })
            }
        };
        const pe = {
            getDistanceBetweenTouches(e) {
                if (e.targetTouches.length < 2) return 1;
                const t = e.targetTouches[0].pageX,
                    i = e.targetTouches[0].pageY,
                    n = e.targetTouches[1].pageX,
                    a = e.targetTouches[1].pageY;
                return Math.sqrt((n - t) ** 2 + (a - i) ** 2)
            },
            onGestureStart(e) {
                const t = this,
                    i = t.params.zoom,
                    n = t.zoom,
                    { gesture: a } = n;
                if (n.fakeGestureTouched = !1, n.fakeGestureMoved = !1, !L.gestures) {
                    if ("touchstart" !== e.type || "touchstart" === e.type && e.targetTouches.length < 2) return;
                    n.fakeGestureTouched = !0, a.scaleStart = pe.getDistanceBetweenTouches(e)
                }
                a.$slideEl && a.$slideEl.length || (a.$slideEl = k(e.target).closest(".swiper-slide"), 0 === a.$slideEl.length && (a.$slideEl = t.slides.eq(t.activeIndex)), a.$imageEl = a.$slideEl.find("img, svg, canvas"), a.$imageWrapEl = a.$imageEl.parent(`.${i.containerClass}`), a.maxRatio = a.$imageWrapEl.attr("data-swiper-zoom") || i.maxRatio, 0 !== a.$imageWrapEl.length) ? (a.$imageEl.transition(0), t.zoom.isScaling = !0) : a.$imageEl = void 0
            },
            onGestureChange(e) {
                const t = this.params.zoom,
                    i = this.zoom,
                    { gesture: n } = i;
                if (!L.gestures) {
                    if ("touchmove" !== e.type || "touchmove" === e.type && e.targetTouches.length < 2) return;
                    i.fakeGestureMoved = !0, n.scaleMove = pe.getDistanceBetweenTouches(e)
                }
                n.$imageEl && 0 !== n.$imageEl.length && (L.gestures ? i.scale = e.scale * i.currentScale : i.scale = n.scaleMove / n.scaleStart * i.currentScale, i.scale > n.maxRatio && (i.scale = n.maxRatio - 1 + (i.scale - n.maxRatio + 1) ** .5), i.scale < t.minRatio && (i.scale = t.minRatio + 1 - (t.minRatio - i.scale + 1) ** .5), n.$imageEl.transform(`translate3d(0,0,0) scale(${i.scale})`))
            },
            onGestureEnd(e) {
                const t = this.params.zoom,
                    i = this.zoom,
                    { gesture: n } = i;
                if (!L.gestures) {
                    if (!i.fakeGestureTouched || !i.fakeGestureMoved) return;
                    if ("touchend" !== e.type || "touchend" === e.type && e.changedTouches.length < 2 && !V.android) return;
                    i.fakeGestureTouched = !1, i.fakeGestureMoved = !1
                }
                n.$imageEl && 0 !== n.$imageEl.length && (i.scale = Math.max(Math.min(i.scale, n.maxRatio), t.minRatio), n.$imageEl.transition(this.params.speed).transform(`translate3d(0,0,0) scale(${i.scale})`), i.currentScale = i.scale, i.isScaling = !1, 1 === i.scale && (n.$slideEl = void 0))
            },
            onTouchStart(e) {
                const t = this.zoom,
                    { gesture: i, image: n } = t;
                i.$imageEl && 0 !== i.$imageEl.length && (n.isTouched || (V.android && e.preventDefault(), n.isTouched = !0, n.touchesStart.x = "touchstart" === e.type ? e.targetTouches[0].pageX : e.pageX, n.touchesStart.y = "touchstart" === e.type ? e.targetTouches[0].pageY : e.pageY))
            },
            onTouchMove(e) {
                const t = this,
                    i = t.zoom,
                    { gesture: n, image: a, velocity: r } = i;
                if (!n.$imageEl || 0 === n.$imageEl.length) return;
                if (t.allowClick = !1, !a.isTouched || !n.$slideEl) return;
                a.isMoved || (a.width = n.$imageEl[0].offsetWidth, a.height = n.$imageEl[0].offsetHeight, a.startX = D.getTranslate(n.$imageWrapEl[0], "x") || 0, a.startY = D.getTranslate(n.$imageWrapEl[0], "y") || 0, n.slideWidth = n.$slideEl[0].offsetWidth, n.slideHeight = n.$slideEl[0].offsetHeight, n.$imageWrapEl.transition(0), t.rtl && (a.startX = -a.startX, a.startY = -a.startY));
                const s = a.width * i.scale,
                    o = a.height * i.scale;
                if (!(s < n.slideWidth && o < n.slideHeight)) {
                    if (a.minX = Math.min(n.slideWidth / 2 - s / 2, 0), a.maxX = -a.minX, a.minY = Math.min(n.slideHeight / 2 - o / 2, 0), a.maxY = -a.minY, a.touchesCurrent.x = "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX, a.touchesCurrent.y = "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY, !a.isMoved && !i.isScaling) { if (t.isHorizontal() && (Math.floor(a.minX) === Math.floor(a.startX) && a.touchesCurrent.x < a.touchesStart.x || Math.floor(a.maxX) === Math.floor(a.startX) && a.touchesCurrent.x > a.touchesStart.x)) return void(a.isTouched = !1); if (!t.isHorizontal() && (Math.floor(a.minY) === Math.floor(a.startY) && a.touchesCurrent.y < a.touchesStart.y || Math.floor(a.maxY) === Math.floor(a.startY) && a.touchesCurrent.y > a.touchesStart.y)) return void(a.isTouched = !1) }
                    e.preventDefault(), e.stopPropagation(), a.isMoved = !0, a.currentX = a.touchesCurrent.x - a.touchesStart.x + a.startX, a.currentY = a.touchesCurrent.y - a.touchesStart.y + a.startY, a.currentX < a.minX && (a.currentX = a.minX + 1 - (a.minX - a.currentX + 1) ** .8), a.currentX > a.maxX && (a.currentX = a.maxX - 1 + (a.currentX - a.maxX + 1) ** .8), a.currentY < a.minY && (a.currentY = a.minY + 1 - (a.minY - a.currentY + 1) ** .8), a.currentY > a.maxY && (a.currentY = a.maxY - 1 + (a.currentY - a.maxY + 1) ** .8), r.prevPositionX || (r.prevPositionX = a.touchesCurrent.x), r.prevPositionY || (r.prevPositionY = a.touchesCurrent.y), r.prevTime || (r.prevTime = Date.now()), r.x = (a.touchesCurrent.x - r.prevPositionX) / (Date.now() - r.prevTime) / 2, r.y = (a.touchesCurrent.y - r.prevPositionY) / (Date.now() - r.prevTime) / 2, Math.abs(a.touchesCurrent.x - r.prevPositionX) < 2 && (r.x = 0), Math.abs(a.touchesCurrent.y - r.prevPositionY) < 2 && (r.y = 0), r.prevPositionX = a.touchesCurrent.x, r.prevPositionY = a.touchesCurrent.y, r.prevTime = Date.now(), n.$imageWrapEl.transform(`translate3d(${a.currentX}px, ${a.currentY}px,0)`)
                }
            },
            onTouchEnd() {
                const e = this.zoom,
                    { gesture: t, image: i, velocity: n } = e;
                if (!t.$imageEl || 0 === t.$imageEl.length) return;
                if (!i.isTouched || !i.isMoved) return i.isTouched = !1, void(i.isMoved = !1);
                i.isTouched = !1, i.isMoved = !1;
                let a = 300,
                    r = 300;
                const s = n.x * a,
                    o = i.currentX + s,
                    l = n.y * r,
                    d = i.currentY + l;
                0 !== n.x && (a = Math.abs((o - i.currentX) / n.x)), 0 !== n.y && (r = Math.abs((d - i.currentY) / n.y));
                const c = Math.max(a, r);
                i.currentX = o, i.currentY = d;
                const u = i.width * e.scale,
                    p = i.height * e.scale;
                i.minX = Math.min(t.slideWidth / 2 - u / 2, 0), i.maxX = -i.minX, i.minY = Math.min(t.slideHeight / 2 - p / 2, 0), i.maxY = -i.minY, i.currentX = Math.max(Math.min(i.currentX, i.maxX), i.minX), i.currentY = Math.max(Math.min(i.currentY, i.maxY), i.minY), t.$imageWrapEl.transition(c).transform(`translate3d(${i.currentX}px, ${i.currentY}px,0)`)
            },
            onTransitionEnd() {
                const e = this.zoom,
                    { gesture: t } = e;
                t.$slideEl && this.previousIndex !== this.activeIndex && (t.$imageEl.transform("translate3d(0,0,0) scale(1)"), t.$imageWrapEl.transform("translate3d(0,0,0)"), e.scale = 1, e.currentScale = 1, t.$slideEl = void 0, t.$imageEl = void 0, t.$imageWrapEl = void 0)
            },
            toggle(e) {
                const t = this.zoom;
                t.scale && 1 !== t.scale ? t.out() : t.in(e)
            },
            in (e) {
                const t = this,
                    i = t.zoom,
                    n = t.params.zoom,
                    { gesture: a, image: r } = i;
                if (a.$slideEl || (a.$slideEl = t.clickedSlide ? k(t.clickedSlide) : t.slides.eq(t.activeIndex), a.$imageEl = a.$slideEl.find("img, svg, canvas"), a.$imageWrapEl = a.$imageEl.parent(`.${n.containerClass}`)), !a.$imageEl || 0 === a.$imageEl.length) return;
                let s, o, l, d, c, u, p, h, f, m, g, v, y, w, b, x, T, S;
                a.$slideEl.addClass(`${n.zoomedSlideClass}`), void 0 === r.touchesStart.x && e ? (s = "touchend" === e.type ? e.changedTouches[0].pageX : e.pageX, o = "touchend" === e.type ? e.changedTouches[0].pageY : e.pageY) : (s = r.touchesStart.x, o = r.touchesStart.y), i.scale = a.$imageWrapEl.attr("data-swiper-zoom") || n.maxRatio, i.currentScale = a.$imageWrapEl.attr("data-swiper-zoom") || n.maxRatio, e ? (T = a.$slideEl[0].offsetWidth, S = a.$slideEl[0].offsetHeight, c = (l = a.$slideEl.offset().left) + T / 2 - s, u = (d = a.$slideEl.offset().top) + S / 2 - o, f = a.$imageEl[0].offsetWidth, m = a.$imageEl[0].offsetHeight, g = f * i.scale, v = m * i.scale, b = -(y = Math.min(T / 2 - g / 2, 0)), x = -(w = Math.min(S / 2 - v / 2, 0)), p = c * i.scale, h = u * i.scale, p < y && (p = y), p > b && (p = b), h < w && (h = w), h > x && (h = x)) : (p = 0, h = 0), a.$imageWrapEl.transition(300).transform(`translate3d(${p}px, ${h}px,0)`), a.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${i.scale})`)
            },
            out() {
                const e = this,
                    t = e.zoom,
                    i = e.params.zoom,
                    { gesture: n } = t;
                n.$slideEl || (n.$slideEl = e.clickedSlide ? k(e.clickedSlide) : e.slides.eq(e.activeIndex), n.$imageEl = n.$slideEl.find("img, svg, canvas"), n.$imageWrapEl = n.$imageEl.parent(`.${i.containerClass}`)), n.$imageEl && 0 !== n.$imageEl.length && (t.scale = 1, t.currentScale = 1, n.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"), n.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"), n.$slideEl.removeClass(`${i.zoomedSlideClass}`), n.$slideEl = void 0)
            },
            enable() {
                const e = this,
                    t = e.zoom;
                if (t.enabled) return;
                t.enabled = !0;
                const i = !("touchstart" !== e.touchEvents.start || !L.passiveListener || !e.params.passiveListeners) && { passive: !0, capture: !1 },
                    n = !L.passiveListener || { passive: !1, capture: !0 };
                L.gestures ? (e.$wrapperEl.on("gesturestart", ".swiper-slide", t.onGestureStart, i), e.$wrapperEl.on("gesturechange", ".swiper-slide", t.onGestureChange, i), e.$wrapperEl.on("gestureend", ".swiper-slide", t.onGestureEnd, i)) : "touchstart" === e.touchEvents.start && (e.$wrapperEl.on(e.touchEvents.start, ".swiper-slide", t.onGestureStart, i), e.$wrapperEl.on(e.touchEvents.move, ".swiper-slide", t.onGestureChange, n), e.$wrapperEl.on(e.touchEvents.end, ".swiper-slide", t.onGestureEnd, i), e.touchEvents.cancel && e.$wrapperEl.on(e.touchEvents.cancel, ".swiper-slide", t.onGestureEnd, i)), e.$wrapperEl.on(e.touchEvents.move, `.${e.params.zoom.containerClass}`, t.onTouchMove, n)
            },
            disable() {
                const e = this,
                    t = e.zoom;
                if (!t.enabled) return;
                e.zoom.enabled = !1;
                const i = !("touchstart" !== e.touchEvents.start || !L.passiveListener || !e.params.passiveListeners) && { passive: !0, capture: !1 },
                    n = !L.passiveListener || { passive: !1, capture: !0 };
                L.gestures ? (e.$wrapperEl.off("gesturestart", ".swiper-slide", t.onGestureStart, i), e.$wrapperEl.off("gesturechange", ".swiper-slide", t.onGestureChange, i), e.$wrapperEl.off("gestureend", ".swiper-slide", t.onGestureEnd, i)) : "touchstart" === e.touchEvents.start && (e.$wrapperEl.off(e.touchEvents.start, ".swiper-slide", t.onGestureStart, i), e.$wrapperEl.off(e.touchEvents.move, ".swiper-slide", t.onGestureChange, n), e.$wrapperEl.off(e.touchEvents.end, ".swiper-slide", t.onGestureEnd, i), e.touchEvents.cancel && e.$wrapperEl.off(e.touchEvents.cancel, ".swiper-slide", t.onGestureEnd, i)), e.$wrapperEl.off(e.touchEvents.move, `.${e.params.zoom.containerClass}`, t.onTouchMove, n)
            }
        };
        const he = {
            loadInSlide(e, t = !0) {
                const i = this,
                    n = i.params.lazy;
                if (void 0 === e) return;
                if (0 === i.slides.length) return;
                const a = i.virtual && i.params.virtual.enabled ? i.$wrapperEl.children(`.${i.params.slideClass}[data-swiper-slide-index="${e}"]`) : i.slides.eq(e);
                let r = a.find(`.${n.elementClass}:not(.${n.loadedClass}):not(.${n.loadingClass})`);
                !a.hasClass(n.elementClass) || a.hasClass(n.loadedClass) || a.hasClass(n.loadingClass) || (r = r.add(a[0])), 0 !== r.length && r.each((e, r) => {
                    const s = k(r);
                    s.addClass(n.loadingClass);
                    const o = s.attr("data-background"),
                        l = s.attr("data-src"),
                        d = s.attr("data-srcset"),
                        c = s.attr("data-sizes");
                    i.loadImage(s[0], l || o, d, c, !1, () => {
                        if (void 0 !== i && null !== i && i && (!i || i.params) && !i.destroyed) {
                            if (o ? (s.css("background-image", `url("${o}")`), s.removeAttr("data-background")) : (d && (s.attr("srcset", d), s.removeAttr("data-srcset")), c && (s.attr("sizes", c), s.removeAttr("data-sizes")), l && (s.attr("src", l), s.removeAttr("data-src"))), s.addClass(n.loadedClass).removeClass(n.loadingClass), a.find(`.${n.preloaderClass}`).remove(), i.params.loop && t) {
                                const e = a.attr("data-swiper-slide-index");
                                if (a.hasClass(i.params.slideDuplicateClass)) {
                                    const t = i.$wrapperEl.children(`[data-swiper-slide-index="${e}"]:not(.${i.params.slideDuplicateClass})`);
                                    i.lazy.loadInSlide(t.index(), !1)
                                } else {
                                    const t = i.$wrapperEl.children(`.${i.params.slideDuplicateClass}[data-swiper-slide-index="${e}"]`);
                                    i.lazy.loadInSlide(t.index(), !1)
                                }
                            }
                            i.emit("lazyImageReady", a[0], s[0])
                        }
                    }), i.emit("lazyImageLoad", a[0], s[0])
                })
            },
            load() {
                const e = this,
                    { $wrapperEl: t, params: i, slides: n, activeIndex: a } = e,
                    r = e.virtual && i.virtual.enabled,
                    s = i.lazy;
                let o = i.slidesPerView;

                function l(e) { if (r) { if (t.children(`.${i.slideClass}[data-swiper-slide-index="${e}"]`).length) return !0 } else if (n[e]) return !0; return !1 }

                function d(e) { return r ? k(e).attr("data-swiper-slide-index") : k(e).index() }
                if ("auto" === o && (o = 0), e.lazy.initialImageLoaded || (e.lazy.initialImageLoaded = !0), e.params.watchSlidesVisibility) t.children(`.${i.slideVisibleClass}`).each((t, i) => {
                    const n = r ? k(i).attr("data-swiper-slide-index") : k(i).index();
                    e.lazy.loadInSlide(n)
                });
                else if (o > 1)
                    for (let t = a; t < a + o; t += 1) l(t) && e.lazy.loadInSlide(t);
                else e.lazy.loadInSlide(a);
                if (s.loadPrevNext)
                    if (o > 1 || s.loadPrevNextAmount && s.loadPrevNextAmount > 1) {
                        const t = s.loadPrevNextAmount,
                            i = o,
                            r = Math.min(a + i + Math.max(t, i), n.length),
                            d = Math.max(a - Math.max(i, t), 0);
                        for (let t = a + o; t < r; t += 1) l(t) && e.lazy.loadInSlide(t);
                        for (let t = d; t < a; t += 1) l(t) && e.lazy.loadInSlide(t)
                    } else {
                        const n = t.children(`.${i.slideNextClass}`);
                        n.length > 0 && e.lazy.loadInSlide(d(n));
                        const a = t.children(`.${i.slidePrevClass}`);
                        a.length > 0 && e.lazy.loadInSlide(d(a))
                    }
            }
        };
        const fe = {
            LinearSpline: function(e, t) { const i = function() { let e, t, i; return (n, a) => { for (t = -1, e = n.length; e - t > 1;) n[i = e + t >> 1] <= a ? t = i : e = i; return e } }(); let n, a; return this.x = e, this.y = t, this.lastIndex = e.length - 1, this.interpolate = function(e) { return e ? (a = i(this.x, e), n = a - 1, (e - this.x[n]) * (this.y[a] - this.y[n]) / (this.x[a] - this.x[n]) + this.y[n]) : 0 }, this },
            getInterpolateFunction(e) {
                const t = this;
                t.controller.spline || (t.controller.spline = t.params.loop ? new fe.LinearSpline(t.slidesGrid, e.slidesGrid) : new fe.LinearSpline(t.snapGrid, e.snapGrid))
            },
            setTranslate(e, t) {
                const i = this,
                    n = i.controller.control;
                let a, r;

                function s(e) { const t = i.rtlTranslate ? -i.translate : i.translate; "slide" === i.params.controller.by && (i.controller.getInterpolateFunction(e), r = -i.controller.spline.interpolate(-t)), r && "container" !== i.params.controller.by || (a = (e.maxTranslate() - e.minTranslate()) / (i.maxTranslate() - i.minTranslate()), r = (t - i.minTranslate()) * a + e.minTranslate()), i.params.controller.inverse && (r = e.maxTranslate() - r), e.updateProgress(r), e.setTranslate(r, i), e.updateActiveIndex(), e.updateSlidesClasses() }
                if (Array.isArray(n))
                    for (let e = 0; e < n.length; e += 1) n[e] !== t && n[e] instanceof K && s(n[e]);
                else n instanceof K && t !== n && s(n)
            },
            setTransition(e, t) {
                const i = this,
                    n = i.controller.control;
                let a;

                function r(t) { t.setTransition(e, i), 0 !== e && (t.transitionStart(), t.params.autoHeight && D.nextTick(() => { t.updateAutoHeight() }), t.$wrapperEl.transitionEnd(() => { n && (t.params.loop && "slide" === i.params.controller.by && t.loopFix(), t.transitionEnd()) })) }
                if (Array.isArray(n))
                    for (a = 0; a < n.length; a += 1) n[a] !== t && n[a] instanceof K && r(n[a]);
                else n instanceof K && t !== n && r(n)
            }
        };
        const me = {
            makeElFocusable: e => (e.attr("tabIndex", "0"), e),
            addElRole: (e, t) => (e.attr("role", t), e),
            addElLabel: (e, t) => (e.attr("aria-label", t), e),
            disableEl: e => (e.attr("aria-disabled", !0), e),
            enableEl: e => (e.attr("aria-disabled", !1), e),
            onEnterKey(e) {
                const t = this,
                    i = t.params.a11y;
                if (13 !== e.keyCode) return;
                const n = k(e.target);
                t.navigation && t.navigation.$nextEl && n.is(t.navigation.$nextEl) && (t.isEnd && !t.params.loop || t.slideNext(), t.isEnd ? t.a11y.notify(i.lastSlideMessage) : t.a11y.notify(i.nextSlideMessage)), t.navigation && t.navigation.$prevEl && n.is(t.navigation.$prevEl) && (t.isBeginning && !t.params.loop || t.slidePrev(), t.isBeginning ? t.a11y.notify(i.firstSlideMessage) : t.a11y.notify(i.prevSlideMessage)), t.pagination && n.is(`.${t.params.pagination.bulletClass}`) && n[0].click()
            },
            notify(e) {
                const t = this.a11y.liveRegion;
                0 !== t.length && (t.html(""), t.html(e))
            },
            updateNavigation() {
                const e = this;
                if (e.params.loop) return;
                const { $nextEl: t, $prevEl: i } = e.navigation;
                i && i.length > 0 && (e.isBeginning ? e.a11y.disableEl(i) : e.a11y.enableEl(i)), t && t.length > 0 && (e.isEnd ? e.a11y.disableEl(t) : e.a11y.enableEl(t))
            },
            updatePagination() {
                const e = this,
                    t = e.params.a11y;
                e.pagination && e.params.pagination.clickable && e.pagination.bullets && e.pagination.bullets.length && e.pagination.bullets.each((i, n) => {
                    const a = k(n);
                    e.a11y.makeElFocusable(a), e.a11y.addElRole(a, "button"), e.a11y.addElLabel(a, t.paginationBulletMessage.replace(/{{index}}/, a.index() + 1))
                })
            },
            init() {
                const e = this;
                e.$el.append(e.a11y.liveRegion);
                const t = e.params.a11y;
                let i, n;
                e.navigation && e.navigation.$nextEl && (i = e.navigation.$nextEl), e.navigation && e.navigation.$prevEl && (n = e.navigation.$prevEl), i && (e.a11y.makeElFocusable(i), e.a11y.addElRole(i, "button"), e.a11y.addElLabel(i, t.nextSlideMessage), i.on("keydown", e.a11y.onEnterKey)), n && (e.a11y.makeElFocusable(n), e.a11y.addElRole(n, "button"), e.a11y.addElLabel(n, t.prevSlideMessage), n.on("keydown", e.a11y.onEnterKey)), e.pagination && e.params.pagination.clickable && e.pagination.bullets && e.pagination.bullets.length && e.pagination.$el.on("keydown", `.${e.params.pagination.bulletClass}`, e.a11y.onEnterKey)
            },
            destroy() {
                const e = this;
                let t, i;
                e.a11y.liveRegion && e.a11y.liveRegion.length > 0 && e.a11y.liveRegion.remove(), e.navigation && e.navigation.$nextEl && (t = e.navigation.$nextEl), e.navigation && e.navigation.$prevEl && (i = e.navigation.$prevEl), t && t.off("keydown", e.a11y.onEnterKey), i && i.off("keydown", e.a11y.onEnterKey), e.pagination && e.params.pagination.clickable && e.pagination.bullets && e.pagination.bullets.length && e.pagination.$el.off("keydown", `.${e.params.pagination.bulletClass}`, e.a11y.onEnterKey)
            }
        };
        const ge = {
            init() {
                const e = this;
                if (!e.params.history) return;
                if (!M.history || !M.history.pushState) return e.params.history.enabled = !1, void(e.params.hashNavigation.enabled = !0);
                const t = e.history;
                t.initialized = !0, t.paths = ge.getPathValues(), (t.paths.key || t.paths.value) && (t.scrollToSlide(0, t.paths.value, e.params.runCallbacksOnInit), e.params.history.replaceState || M.addEventListener("popstate", e.history.setHistoryPopState))
            },
            destroy() {
                const e = this;
                e.params.history.replaceState || M.removeEventListener("popstate", e.history.setHistoryPopState)
            },
            setHistoryPopState() { this.history.paths = ge.getPathValues(), this.history.scrollToSlide(this.params.speed, this.history.paths.value, !1) },
            getPathValues() {
                const e = M.location.pathname.slice(1).split("/").filter(e => "" !== e),
                    t = e.length;
                return { key: e[t - 2], value: e[t - 1] }
            },
            setHistory(e, t) {
                if (!this.history.initialized || !this.params.history.enabled) return;
                const i = this.slides.eq(t);
                let n = ge.slugify(i.attr("data-history"));
                M.location.pathname.includes(e) || (n = `${e}/${n}`);
                const a = M.history.state;
                a && a.value === n || (this.params.history.replaceState ? M.history.replaceState({ value: n }, null, n) : M.history.pushState({ value: n }, null, n))
            },
            slugify: e => e.toString().replace(/\s+/g, "-").replace(/[^\w-]+/g, "").replace(/--+/g, "-").replace(/^-+/, "").replace(/-+$/, ""),
            scrollToSlide(e, t, i) {
                const n = this;
                if (t)
                    for (let a = 0, r = n.slides.length; a < r; a += 1) {
                        const r = n.slides.eq(a);
                        if (ge.slugify(r.attr("data-history")) === t && !r.hasClass(n.params.slideDuplicateClass)) {
                            const t = r.index();
                            n.slideTo(t, e, i)
                        }
                    } else n.slideTo(0, e, i)
            }
        };
        const ve = {
            onHashCange() {
                const e = this,
                    t = A.location.hash.replace("#", "");
                if (t !== e.slides.eq(e.activeIndex).attr("data-hash")) {
                    const i = e.$wrapperEl.children(`.${e.params.slideClass}[data-hash="${t}"]`).index();
                    if (void 0 === i) return;
                    e.slideTo(i)
                }
            },
            setHash() {
                const e = this;
                if (e.hashNavigation.initialized && e.params.hashNavigation.enabled)
                    if (e.params.hashNavigation.replaceState && M.history && M.history.replaceState) M.history.replaceState(null, null, `#${e.slides.eq(e.activeIndex).attr("data-hash")}` || "");
                    else {
                        const t = e.slides.eq(e.activeIndex),
                            i = t.attr("data-hash") || t.attr("data-history");
                        A.location.hash = i || ""
                    }
            },
            init() {
                const e = this;
                if (!e.params.hashNavigation.enabled || e.params.history && e.params.history.enabled) return;
                e.hashNavigation.initialized = !0;
                const t = A.location.hash.replace("#", "");
                if (t) {
                    const i = 0;
                    for (let n = 0, a = e.slides.length; n < a; n += 1) {
                        const a = e.slides.eq(n);
                        if ((a.attr("data-hash") || a.attr("data-history")) === t && !a.hasClass(e.params.slideDuplicateClass)) {
                            const t = a.index();
                            e.slideTo(t, i, e.params.runCallbacksOnInit, !0)
                        }
                    }
                }
                e.params.hashNavigation.watchState && k(M).on("hashchange", e.hashNavigation.onHashCange)
            },
            destroy() {
                const e = this;
                e.params.hashNavigation.watchState && k(M).off("hashchange", e.hashNavigation.onHashCange)
            }
        };
        const ye = {
            run() {
                const e = this,
                    t = e.slides.eq(e.activeIndex);
                let i = e.params.autoplay.delay;
                t.attr("data-swiper-autoplay") && (i = t.attr("data-swiper-autoplay") || e.params.autoplay.delay), clearTimeout(e.autoplay.timeout), e.autoplay.timeout = D.nextTick(() => { e.params.autoplay.reverseDirection ? e.params.loop ? (e.loopFix(), e.slidePrev(e.params.speed, !0, !0), e.emit("autoplay")) : e.isBeginning ? e.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (e.slideTo(e.slides.length - 1, e.params.speed, !0, !0), e.emit("autoplay")) : (e.slidePrev(e.params.speed, !0, !0), e.emit("autoplay")) : e.params.loop ? (e.loopFix(), e.slideNext(e.params.speed, !0, !0), e.emit("autoplay")) : e.isEnd ? e.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (e.slideTo(0, e.params.speed, !0, !0), e.emit("autoplay")) : (e.slideNext(e.params.speed, !0, !0), e.emit("autoplay")), e.params.cssMode && e.autoplay.running && e.autoplay.run() }, i)
            },
            start() { return void 0 === this.autoplay.timeout && (!this.autoplay.running && (this.autoplay.running = !0, this.emit("autoplayStart"), this.autoplay.run(), !0)) },
            stop() { const e = this; return !!e.autoplay.running && (void 0 !== e.autoplay.timeout && (e.autoplay.timeout && (clearTimeout(e.autoplay.timeout), e.autoplay.timeout = void 0), e.autoplay.running = !1, e.emit("autoplayStop"), !0)) },
            pause(e) {
                const t = this;
                t.autoplay.running && (t.autoplay.paused || (t.autoplay.timeout && clearTimeout(t.autoplay.timeout), t.autoplay.paused = !0, 0 !== e && t.params.autoplay.waitForTransition ? (t.$wrapperEl[0].addEventListener("transitionend", t.autoplay.onTransitionEnd), t.$wrapperEl[0].addEventListener("webkitTransitionEnd", t.autoplay.onTransitionEnd)) : (t.autoplay.paused = !1, t.autoplay.run())))
            }
        };
        const we = {
            setTranslate() {
                const e = this,
                    { slides: t } = e;
                for (let i = 0; i < t.length; i += 1) {
                    const t = e.slides.eq(i);
                    let n = -t[0].swiperSlideOffset;
                    e.params.virtualTranslate || (n -= e.translate);
                    let a = 0;
                    e.isHorizontal() || (a = n, n = 0);
                    const r = e.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(t[0].progress), 0) : 1 + Math.min(Math.max(t[0].progress, -1), 0);
                    t.css({ opacity: r }).transform(`translate3d(${n}px, ${a}px, 0px)`)
                }
            },
            setTransition(e) {
                const t = this,
                    { slides: i, $wrapperEl: n } = t;
                if (i.transition(e), t.params.virtualTranslate && 0 !== e) {
                    let e = !1;
                    i.transitionEnd(() => {
                        if (e) return;
                        if (!t || t.destroyed) return;
                        e = !0, t.animating = !1;
                        const i = ["webkitTransitionEnd", "transitionend"];
                        for (let e = 0; e < i.length; e += 1) n.trigger(i[e])
                    })
                }
            }
        };
        const be = {
            setTranslate() {
                const { $el: e, $wrapperEl: t, slides: i, width: n, height: a, rtlTranslate: r, size: s } = this, o = this.params.cubeEffect, l = this.isHorizontal(), d = this.virtual && this.params.virtual.enabled;
                let c, u = 0;
                o.shadow && (l ? (0 === (c = t.find(".swiper-cube-shadow")).length && (c = k('<div class="swiper-cube-shadow"></div>'), t.append(c)), c.css({ height: `${n}px` })) : 0 === (c = e.find(".swiper-cube-shadow")).length && (c = k('<div class="swiper-cube-shadow"></div>'), e.append(c)));
                for (let e = 0; e < i.length; e += 1) {
                    const t = i.eq(e);
                    let n = e;
                    d && (n = parseInt(t.attr("data-swiper-slide-index"), 10));
                    let a = 90 * n,
                        c = Math.floor(a / 360);
                    r && (a = -a, c = Math.floor(-a / 360));
                    const p = Math.max(Math.min(t[0].progress, 1), -1);
                    let h = 0,
                        f = 0,
                        m = 0;
                    n % 4 == 0 ? (h = 4 * -c * s, m = 0) : (n - 1) % 4 == 0 ? (h = 0, m = 4 * -c * s) : (n - 2) % 4 == 0 ? (h = s + 4 * c * s, m = s) : (n - 3) % 4 == 0 && (h = -s, m = 3 * s + 4 * s * c), r && (h = -h), l || (f = h, h = 0);
                    const g = `rotateX(${l?0:-a}deg) rotateY(${l?a:0}deg) translate3d(${h}px, ${f}px, ${m}px)`;
                    if (p <= 1 && p > -1 && (u = 90 * n + 90 * p, r && (u = 90 * -n - 90 * p)), t.transform(g), o.slideShadows) {
                        let e = l ? t.find(".swiper-slide-shadow-left") : t.find(".swiper-slide-shadow-top"),
                            i = l ? t.find(".swiper-slide-shadow-right") : t.find(".swiper-slide-shadow-bottom");
                        0 === e.length && (e = k(`<div class="swiper-slide-shadow-${l?"left":"top"}"></div>`), t.append(e)), 0 === i.length && (i = k(`<div class="swiper-slide-shadow-${l?"right":"bottom"}"></div>`), t.append(i)), e.length && (e[0].style.opacity = Math.max(-p, 0)), i.length && (i[0].style.opacity = Math.max(p, 0))
                    }
                }
                if (t.css({ "-webkit-transform-origin": `50% 50% -${s/2}px`, "-moz-transform-origin": `50% 50% -${s/2}px`, "-ms-transform-origin": `50% 50% -${s/2}px`, "transform-origin": `50% 50% -${s/2}px` }), o.shadow)
                    if (l) c.transform(`translate3d(0px, ${n/2+o.shadowOffset}px, ${-n/2}px) rotateX(90deg) rotateZ(0deg) scale(${o.shadowScale})`);
                    else {
                        const e = Math.abs(u) - 90 * Math.floor(Math.abs(u) / 90),
                            t = 1.5 - (Math.sin(2 * e * Math.PI / 360) / 2 + Math.cos(2 * e * Math.PI / 360) / 2),
                            i = o.shadowScale,
                            n = o.shadowScale / t,
                            r = o.shadowOffset;
                        c.transform(`scale3d(${i}, 1, ${n}) translate3d(0px, ${a/2+r}px, ${-a/2/n}px) rotateX(-90deg)`)
                    }
                const p = _.isSafari || _.isUiWebView ? -s / 2 : 0;
                t.transform(`translate3d(0px,0,${p}px) rotateX(${this.isHorizontal()?0:u}deg) rotateY(${this.isHorizontal()?-u:0}deg)`)
            },
            setTransition(e) {
                const { $el: t, slides: i } = this;
                i.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e), this.params.cubeEffect.shadow && !this.isHorizontal() && t.find(".swiper-cube-shadow").transition(e)
            }
        };
        const xe = {
            setTranslate() {
                const e = this,
                    { slides: t, rtlTranslate: i } = e;
                for (let n = 0; n < t.length; n += 1) {
                    const a = t.eq(n);
                    let r = a[0].progress;
                    e.params.flipEffect.limitRotation && (r = Math.max(Math.min(a[0].progress, 1), -1));
                    let s = -180 * r,
                        o = 0,
                        l = -a[0].swiperSlideOffset,
                        d = 0;
                    if (e.isHorizontal() ? i && (s = -s) : (d = l, l = 0, o = -s, s = 0), a[0].style.zIndex = -Math.abs(Math.round(r)) + t.length, e.params.flipEffect.slideShadows) {
                        let t = e.isHorizontal() ? a.find(".swiper-slide-shadow-left") : a.find(".swiper-slide-shadow-top"),
                            i = e.isHorizontal() ? a.find(".swiper-slide-shadow-right") : a.find(".swiper-slide-shadow-bottom");
                        0 === t.length && (t = k(`<div class="swiper-slide-shadow-${e.isHorizontal()?"left":"top"}"></div>`), a.append(t)), 0 === i.length && (i = k(`<div class="swiper-slide-shadow-${e.isHorizontal()?"right":"bottom"}"></div>`), a.append(i)), t.length && (t[0].style.opacity = Math.max(-r, 0)), i.length && (i[0].style.opacity = Math.max(r, 0))
                    }
                    a.transform(`translate3d(${l}px, ${d}px, 0px) rotateX(${o}deg) rotateY(${s}deg)`)
                }
            },
            setTransition(e) {
                const t = this,
                    { slides: i, activeIndex: n, $wrapperEl: a } = t;
                if (i.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e), t.params.virtualTranslate && 0 !== e) {
                    let e = !1;
                    i.eq(n).transitionEnd(function() {
                        if (e) return;
                        if (!t || t.destroyed) return;
                        e = !0, t.animating = !1;
                        const i = ["webkitTransitionEnd", "transitionend"];
                        for (let e = 0; e < i.length; e += 1) a.trigger(i[e])
                    })
                }
            }
        };
        const Te = {
            setTranslate() {
                const { width: e, height: t, slides: i, $wrapperEl: n, slidesSizesGrid: a } = this, r = this.params.coverflowEffect, s = this.isHorizontal(), o = this.translate, l = s ? e / 2 - o : t / 2 - o, d = s ? r.rotate : -r.rotate, c = r.depth;
                for (let e = 0, t = i.length; e < t; e += 1) {
                    const t = i.eq(e),
                        n = a[e],
                        o = (l - t[0].swiperSlideOffset - n / 2) / n * r.modifier;
                    let u = s ? d * o : 0,
                        p = s ? 0 : d * o,
                        h = -c * Math.abs(o),
                        f = s ? 0 : r.stretch * o,
                        m = s ? r.stretch * o : 0;
                    Math.abs(m) < .001 && (m = 0), Math.abs(f) < .001 && (f = 0), Math.abs(h) < .001 && (h = 0), Math.abs(u) < .001 && (u = 0), Math.abs(p) < .001 && (p = 0);
                    const g = `translate3d(${m}px,${f}px,${h}px)  rotateX(${p}deg) rotateY(${u}deg)`;
                    if (t.transform(g), t[0].style.zIndex = 1 - Math.abs(Math.round(o)), r.slideShadows) {
                        let e = s ? t.find(".swiper-slide-shadow-left") : t.find(".swiper-slide-shadow-top"),
                            i = s ? t.find(".swiper-slide-shadow-right") : t.find(".swiper-slide-shadow-bottom");
                        0 === e.length && (e = k(`<div class="swiper-slide-shadow-${s?"left":"top"}"></div>`), t.append(e)), 0 === i.length && (i = k(`<div class="swiper-slide-shadow-${s?"right":"bottom"}"></div>`), t.append(i)), e.length && (e[0].style.opacity = o > 0 ? o : 0), i.length && (i[0].style.opacity = -o > 0 ? -o : 0)
                    }
                }
                if (L.pointerEvents || L.prefixedPointerEvents) { n[0].style.perspectiveOrigin = `${l}px 50%` }
            },
            setTransition(e) { this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e) }
        };
        const Se = {
            init() {
                const e = this,
                    { thumbs: t } = e.params,
                    i = e.constructor;
                t.swiper instanceof i ? (e.thumbs.swiper = t.swiper, D.extend(e.thumbs.swiper.originalParams, { watchSlidesProgress: !0, slideToClickedSlide: !1 }), D.extend(e.thumbs.swiper.params, { watchSlidesProgress: !0, slideToClickedSlide: !1 })) : D.isObject(t.swiper) && (e.thumbs.swiper = new i(D.extend({}, t.swiper, { watchSlidesVisibility: !0, watchSlidesProgress: !0, slideToClickedSlide: !1 })), e.thumbs.swiperCreated = !0), e.thumbs.swiper.$el.addClass(e.params.thumbs.thumbsContainerClass), e.thumbs.swiper.on("tap", e.thumbs.onThumbClick)
            },
            onThumbClick() {
                const e = this,
                    t = e.thumbs.swiper;
                if (!t) return;
                const i = t.clickedIndex,
                    n = t.clickedSlide;
                if (n && k(n).hasClass(e.params.thumbs.slideThumbActiveClass)) return;
                if (void 0 === i || null === i) return;
                let a;
                if (a = t.params.loop ? parseInt(k(t.clickedSlide).attr("data-swiper-slide-index"), 10) : i, e.params.loop) {
                    let t = e.activeIndex;
                    e.slides.eq(t).hasClass(e.params.slideDuplicateClass) && (e.loopFix(), e._clientLeft = e.$wrapperEl[0].clientLeft, t = e.activeIndex);
                    const i = e.slides.eq(t).prevAll(`[data-swiper-slide-index="${a}"]`).eq(0).index(),
                        n = e.slides.eq(t).nextAll(`[data-swiper-slide-index="${a}"]`).eq(0).index();
                    a = void 0 === i ? n : void 0 === n ? i : n - t < t - i ? n : i
                }
                e.slideTo(a)
            },
            update(e) {
                const t = this,
                    i = t.thumbs.swiper;
                if (!i) return;
                const n = "auto" === i.params.slidesPerView ? i.slidesPerViewDynamic() : i.params.slidesPerView;
                if (t.realIndex !== i.realIndex) {
                    let a, r = i.activeIndex;
                    if (i.params.loop) {
                        i.slides.eq(r).hasClass(i.params.slideDuplicateClass) && (i.loopFix(), i._clientLeft = i.$wrapperEl[0].clientLeft, r = i.activeIndex);
                        const e = i.slides.eq(r).prevAll(`[data-swiper-slide-index="${t.realIndex}"]`).eq(0).index(),
                            n = i.slides.eq(r).nextAll(`[data-swiper-slide-index="${t.realIndex}"]`).eq(0).index();
                        a = void 0 === e ? n : void 0 === n ? e : n - r == r - e ? r : n - r < r - e ? n : e
                    } else a = t.realIndex;
                    i.visibleSlidesIndexes && i.visibleSlidesIndexes.indexOf(a) < 0 && (i.params.centeredSlides ? a = a > r ? a - Math.floor(n / 2) + 1 : a + Math.floor(n / 2) - 1 : a > r && (a = a - n + 1), i.slideTo(a, e ? 0 : void 0))
                }
                let a = 1;
                const r = t.params.thumbs.slideThumbActiveClass;
                if (t.params.slidesPerView > 1 && !t.params.centeredSlides && (a = t.params.slidesPerView), i.slides.removeClass(r), i.params.loop || i.params.virtual && i.params.virtual.enabled)
                    for (let e = 0; e < a; e += 1) i.$wrapperEl.children(`[data-swiper-slide-index="${t.realIndex+e}"]`).addClass(r);
                else
                    for (let e = 0; e < a; e += 1) i.slides.eq(t.realIndex + e).addClass(r)
            }
        };
        const Ce = [J, Q, Z, ee, ie, ae, se, {
            name: "mousewheel",
            params: { mousewheel: { enabled: !1, releaseOnEdges: !1, invert: !1, forceToAxis: !1, sensitivity: 1, eventsTarged: "container" } },
            create() { D.extend(this, { mousewheel: { enabled: !1, enable: oe.enable.bind(this), disable: oe.disable.bind(this), handle: oe.handle.bind(this), handleMouseEnter: oe.handleMouseEnter.bind(this), handleMouseLeave: oe.handleMouseLeave.bind(this), lastScrollTime: D.now() } }) },
            on: {
                init() { const e = this;!e.params.mousewheel.enabled && e.params.cssMode && e.mousewheel.disable(), e.params.mousewheel.enabled && e.mousewheel.enable() },
                destroy() {
                    const e = this;
                    e.params.cssMode && e.mousewheel.enable(), e.mousewheel.enabled && e.mousewheel.disable()
                }
            }
        }, {
            name: "navigation",
            params: { navigation: { nextEl: null, prevEl: null, hideOnClick: !1, disabledClass: "swiper-button-disabled", hiddenClass: "swiper-button-hidden", lockClass: "swiper-button-lock" } },
            create() { D.extend(this, { navigation: { init: le.init.bind(this), update: le.update.bind(this), destroy: le.destroy.bind(this), onNextClick: le.onNextClick.bind(this), onPrevClick: le.onPrevClick.bind(this) } }) },
            on: {
                init() { this.navigation.init(), this.navigation.update() },
                toEdge() { this.navigation.update() },
                fromEdge() { this.navigation.update() },
                destroy() { this.navigation.destroy() },
                click(e) {
                    const t = this,
                        { $nextEl: i, $prevEl: n } = t.navigation;
                    if (t.params.navigation.hideOnClick && !k(e.target).is(n) && !k(e.target).is(i)) {
                        let e;
                        i ? e = i.hasClass(t.params.navigation.hiddenClass) : n && (e = n.hasClass(t.params.navigation.hiddenClass)), !0 === e ? t.emit("navigationShow", t) : t.emit("navigationHide", t), i && i.toggleClass(t.params.navigation.hiddenClass), n && n.toggleClass(t.params.navigation.hiddenClass)
                    }
                }
            }
        }, {
            name: "pagination",
            params: { pagination: { el: null, bulletElement: "span", clickable: !1, hideOnClick: !1, renderBullet: null, renderProgressbar: null, renderFraction: null, renderCustom: null, progressbarOpposite: !1, type: "bullets", dynamicBullets: !1, dynamicMainBullets: 1, formatFractionCurrent: e => e, formatFractionTotal: e => e, bulletClass: "swiper-pagination-bullet", bulletActiveClass: "swiper-pagination-bullet-active", modifierClass: "swiper-pagination-", currentClass: "swiper-pagination-current", totalClass: "swiper-pagination-total", hiddenClass: "swiper-pagination-hidden", progressbarFillClass: "swiper-pagination-progressbar-fill", progressbarOppositeClass: "swiper-pagination-progressbar-opposite", clickableClass: "swiper-pagination-clickable", lockClass: "swiper-pagination-lock" } },
            create() { D.extend(this, { pagination: { init: de.init.bind(this), render: de.render.bind(this), update: de.update.bind(this), destroy: de.destroy.bind(this), dynamicBulletIndex: 0 } }) },
            on: {
                init() { this.pagination.init(), this.pagination.render(), this.pagination.update() },
                activeIndexChange() {
                    const e = this;
                    e.params.loop ? e.pagination.update() : void 0 === e.snapIndex && e.pagination.update()
                },
                snapIndexChange() {
                    const e = this;
                    e.params.loop || e.pagination.update()
                },
                slidesLengthChange() {
                    const e = this;
                    e.params.loop && (e.pagination.render(), e.pagination.update())
                },
                snapGridLengthChange() {
                    const e = this;
                    e.params.loop || (e.pagination.render(), e.pagination.update())
                },
                destroy() { this.pagination.destroy() },
                click(e) { const t = this; if (t.params.pagination.el && t.params.pagination.hideOnClick && t.pagination.$el.length > 0 && !k(e.target).hasClass(t.params.pagination.bulletClass)) {!0 === t.pagination.$el.hasClass(t.params.pagination.hiddenClass) ? t.emit("paginationShow", t) : t.emit("paginationHide", t), t.pagination.$el.toggleClass(t.params.pagination.hiddenClass) } }
            }
        }, { name: "scrollbar", params: { scrollbar: { el: null, dragSize: "auto", hide: !1, draggable: !1, snapOnRelease: !0, lockClass: "swiper-scrollbar-lock", dragClass: "swiper-scrollbar-drag" } }, create() { D.extend(this, { scrollbar: { init: ce.init.bind(this), destroy: ce.destroy.bind(this), updateSize: ce.updateSize.bind(this), setTranslate: ce.setTranslate.bind(this), setTransition: ce.setTransition.bind(this), enableDraggable: ce.enableDraggable.bind(this), disableDraggable: ce.disableDraggable.bind(this), setDragPosition: ce.setDragPosition.bind(this), getPointerPosition: ce.getPointerPosition.bind(this), onDragStart: ce.onDragStart.bind(this), onDragMove: ce.onDragMove.bind(this), onDragEnd: ce.onDragEnd.bind(this), isTouched: !1, timeout: null, dragTimeout: null } }) }, on: { init() { this.scrollbar.init(), this.scrollbar.updateSize(), this.scrollbar.setTranslate() }, update() { this.scrollbar.updateSize() }, resize() { this.scrollbar.updateSize() }, observerUpdate() { this.scrollbar.updateSize() }, setTranslate() { this.scrollbar.setTranslate() }, setTransition(e) { this.scrollbar.setTransition(e) }, destroy() { this.scrollbar.destroy() } } }, { name: "parallax", params: { parallax: { enabled: !1 } }, create() { D.extend(this, { parallax: { setTransform: ue.setTransform.bind(this), setTranslate: ue.setTranslate.bind(this), setTransition: ue.setTransition.bind(this) } }) }, on: { beforeInit() { this.params.parallax.enabled && (this.params.watchSlidesProgress = !0, this.originalParams.watchSlidesProgress = !0) }, init() { this.params.parallax.enabled && this.parallax.setTranslate() }, setTranslate() { this.params.parallax.enabled && this.parallax.setTranslate() }, setTransition(e) { this.params.parallax.enabled && this.parallax.setTransition(e) } } }, {
            name: "zoom",
            params: { zoom: { enabled: !1, maxRatio: 3, minRatio: 1, toggle: !0, containerClass: "swiper-zoom-container", zoomedSlideClass: "swiper-slide-zoomed" } },
            create() {
                const e = this,
                    t = { enabled: !1, scale: 1, currentScale: 1, isScaling: !1, gesture: { $slideEl: void 0, slideWidth: void 0, slideHeight: void 0, $imageEl: void 0, $imageWrapEl: void 0, maxRatio: 3 }, image: { isTouched: void 0, isMoved: void 0, currentX: void 0, currentY: void 0, minX: void 0, minY: void 0, maxX: void 0, maxY: void 0, width: void 0, height: void 0, startX: void 0, startY: void 0, touchesStart: {}, touchesCurrent: {} }, velocity: { x: void 0, y: void 0, prevPositionX: void 0, prevPositionY: void 0, prevTime: void 0 } };
                "onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out".split(" ").forEach(i => { t[i] = pe[i].bind(e) }), D.extend(e, { zoom: t });
                let i = 1;
                Object.defineProperty(e.zoom, "scale", {
                    get: () => i,
                    set(t) {
                        if (i !== t) {
                            const i = e.zoom.gesture.$imageEl ? e.zoom.gesture.$imageEl[0] : void 0,
                                n = e.zoom.gesture.$slideEl ? e.zoom.gesture.$slideEl[0] : void 0;
                            e.emit("zoomChange", t, i, n)
                        }
                        i = t
                    }
                })
            },
            on: {
                init() {
                    const e = this;
                    e.params.zoom.enabled && e.zoom.enable()
                },
                destroy() { this.zoom.disable() },
                touchStart(e) { this.zoom.enabled && this.zoom.onTouchStart(e) },
                touchEnd(e) { this.zoom.enabled && this.zoom.onTouchEnd(e) },
                doubleTap(e) {
                    const t = this;
                    t.params.zoom.enabled && t.zoom.enabled && t.params.zoom.toggle && t.zoom.toggle(e)
                },
                transitionEnd() {
                    const e = this;
                    e.zoom.enabled && e.params.zoom.enabled && e.zoom.onTransitionEnd()
                },
                slideChange() {
                    const e = this;
                    e.zoom.enabled && e.params.zoom.enabled && e.params.cssMode && e.zoom.onTransitionEnd()
                }
            }
        }, {
            name: "lazy",
            params: { lazy: { enabled: !1, loadPrevNext: !1, loadPrevNextAmount: 1, loadOnTransitionStart: !1, elementClass: "swiper-lazy", loadingClass: "swiper-lazy-loading", loadedClass: "swiper-lazy-loaded", preloaderClass: "swiper-lazy-preloader" } },
            create() { D.extend(this, { lazy: { initialImageLoaded: !1, load: he.load.bind(this), loadInSlide: he.loadInSlide.bind(this) } }) },
            on: {
                beforeInit() {
                    const e = this;
                    e.params.lazy.enabled && e.params.preloadImages && (e.params.preloadImages = !1)
                },
                init() {
                    const e = this;
                    e.params.lazy.enabled && !e.params.loop && 0 === e.params.initialSlide && e.lazy.load()
                },
                scroll() {
                    const e = this;
                    e.params.freeMode && !e.params.freeModeSticky && e.lazy.load()
                },
                resize() {
                    const e = this;
                    e.params.lazy.enabled && e.lazy.load()
                },
                scrollbarDragMove() {
                    const e = this;
                    e.params.lazy.enabled && e.lazy.load()
                },
                transitionStart() {
                    const e = this;
                    e.params.lazy.enabled && (e.params.lazy.loadOnTransitionStart || !e.params.lazy.loadOnTransitionStart && !e.lazy.initialImageLoaded) && e.lazy.load()
                },
                transitionEnd() {
                    const e = this;
                    e.params.lazy.enabled && !e.params.lazy.loadOnTransitionStart && e.lazy.load()
                },
                slideChange() {
                    const e = this;
                    e.params.lazy.enabled && e.params.cssMode && e.lazy.load()
                }
            }
        }, {
            name: "controller",
            params: { controller: { control: void 0, inverse: !1, by: "slide" } },
            create() { D.extend(this, { controller: { control: this.params.controller.control, getInterpolateFunction: fe.getInterpolateFunction.bind(this), setTranslate: fe.setTranslate.bind(this), setTransition: fe.setTransition.bind(this) } }) },
            on: {
                update() {
                    const e = this;
                    e.controller.control && e.controller.spline && (e.controller.spline = void 0, delete e.controller.spline)
                },
                resize() {
                    const e = this;
                    e.controller.control && e.controller.spline && (e.controller.spline = void 0, delete e.controller.spline)
                },
                observerUpdate() {
                    const e = this;
                    e.controller.control && e.controller.spline && (e.controller.spline = void 0, delete e.controller.spline)
                },
                setTranslate(e, t) { this.controller.control && this.controller.setTranslate(e, t) },
                setTransition(e, t) { this.controller.control && this.controller.setTransition(e, t) }
            }
        }, {
            name: "a11y",
            params: { a11y: { enabled: !0, notificationClass: "swiper-notification", prevSlideMessage: "Previous slide", nextSlideMessage: "Next slide", firstSlideMessage: "This is the first slide", lastSlideMessage: "This is the last slide", paginationBulletMessage: "Go to slide {{index}}" } },
            create() {
                const e = this;
                D.extend(e, { a11y: { liveRegion: k(`<span class="${e.params.a11y.notificationClass}" aria-live="assertive" aria-atomic="true"></span>`) } }), Object.keys(me).forEach(t => { e.a11y[t] = me[t].bind(e) })
            },
            on: { init() { this.params.a11y.enabled && (this.a11y.init(), this.a11y.updateNavigation()) }, toEdge() { this.params.a11y.enabled && this.a11y.updateNavigation() }, fromEdge() { this.params.a11y.enabled && this.a11y.updateNavigation() }, paginationUpdate() { this.params.a11y.enabled && this.a11y.updatePagination() }, destroy() { this.params.a11y.enabled && this.a11y.destroy() } }
        }, {
            name: "history",
            params: { history: { enabled: !1, replaceState: !1, key: "slides" } },
            create() { D.extend(this, { history: { init: ge.init.bind(this), setHistory: ge.setHistory.bind(this), setHistoryPopState: ge.setHistoryPopState.bind(this), scrollToSlide: ge.scrollToSlide.bind(this), destroy: ge.destroy.bind(this) } }) },
            on: {
                init() {
                    const e = this;
                    e.params.history.enabled && e.history.init()
                },
                destroy() {
                    const e = this;
                    e.params.history.enabled && e.history.destroy()
                },
                transitionEnd() {
                    const e = this;
                    e.history.initialized && e.history.setHistory(e.params.history.key, e.activeIndex)
                },
                slideChange() {
                    const e = this;
                    e.history.initialized && e.params.cssMode && e.history.setHistory(e.params.history.key, e.activeIndex)
                }
            }
        }, {
            name: "hash-navigation",
            params: { hashNavigation: { enabled: !1, replaceState: !1, watchState: !1 } },
            create() { D.extend(this, { hashNavigation: { initialized: !1, init: ve.init.bind(this), destroy: ve.destroy.bind(this), setHash: ve.setHash.bind(this), onHashCange: ve.onHashCange.bind(this) } }) },
            on: {
                init() {
                    const e = this;
                    e.params.hashNavigation.enabled && e.hashNavigation.init()
                },
                destroy() {
                    const e = this;
                    e.params.hashNavigation.enabled && e.hashNavigation.destroy()
                },
                transitionEnd() {
                    const e = this;
                    e.hashNavigation.initialized && e.hashNavigation.setHash()
                },
                slideChange() {
                    const e = this;
                    e.hashNavigation.initialized && e.params.cssMode && e.hashNavigation.setHash()
                }
            }
        }, {
            name: "autoplay",
            params: { autoplay: { enabled: !1, delay: 3e3, waitForTransition: !0, disableOnInteraction: !0, stopOnLastSlide: !1, reverseDirection: !1 } },
            create() {
                const e = this;
                D.extend(e, { autoplay: { running: !1, paused: !1, run: ye.run.bind(e), start: ye.start.bind(e), stop: ye.stop.bind(e), pause: ye.pause.bind(e), onVisibilityChange() { "hidden" === document.visibilityState && e.autoplay.running && e.autoplay.pause(), "visible" === document.visibilityState && e.autoplay.paused && (e.autoplay.run(), e.autoplay.paused = !1) }, onTransitionEnd(t) { e && !e.destroyed && e.$wrapperEl && t.target === this && (e.$wrapperEl[0].removeEventListener("transitionend", e.autoplay.onTransitionEnd), e.$wrapperEl[0].removeEventListener("webkitTransitionEnd", e.autoplay.onTransitionEnd), e.autoplay.paused = !1, e.autoplay.running ? e.autoplay.run() : e.autoplay.stop()) } } })
            },
            on: {
                init() {
                    const e = this;
                    e.params.autoplay.enabled && (e.autoplay.start(), document.addEventListener("visibilitychange", e.autoplay.onVisibilityChange))
                },
                beforeTransitionStart(e, t) {
                    const i = this;
                    i.autoplay.running && (t || !i.params.autoplay.disableOnInteraction ? i.autoplay.pause(e) : i.autoplay.stop())
                },
                sliderFirstMove() {
                    const e = this;
                    e.autoplay.running && (e.params.autoplay.disableOnInteraction ? e.autoplay.stop() : e.autoplay.pause())
                },
                touchEnd() {
                    const e = this;
                    e.params.cssMode && e.autoplay.paused && !e.params.autoplay.disableOnInteraction && e.autoplay.run()
                },
                destroy() {
                    const e = this;
                    e.autoplay.running && e.autoplay.stop(), document.removeEventListener("visibilitychange", e.autoplay.onVisibilityChange)
                }
            }
        }, {
            name: "effect-fade",
            params: { fadeEffect: { crossFade: !1 } },
            create() { D.extend(this, { fadeEffect: { setTranslate: we.setTranslate.bind(this), setTransition: we.setTransition.bind(this) } }) },
            on: {
                beforeInit() {
                    if ("fade" !== this.params.effect) return;
                    this.classNames.push(`${this.params.containerModifierClass}fade`);
                    const e = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, spaceBetween: 0, virtualTranslate: !0 };
                    D.extend(this.params, e), D.extend(this.originalParams, e)
                },
                setTranslate() { "fade" === this.params.effect && this.fadeEffect.setTranslate() },
                setTransition(e) { "fade" === this.params.effect && this.fadeEffect.setTransition(e) }
            }
        }, {
            name: "effect-cube",
            params: { cubeEffect: { slideShadows: !0, shadow: !0, shadowOffset: 20, shadowScale: .94 } },
            create() { D.extend(this, { cubeEffect: { setTranslate: be.setTranslate.bind(this), setTransition: be.setTransition.bind(this) } }) },
            on: {
                beforeInit() {
                    if ("cube" !== this.params.effect) return;
                    this.classNames.push(`${this.params.containerModifierClass}cube`), this.classNames.push(`${this.params.containerModifierClass}3d`);
                    const e = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, resistanceRatio: 0, spaceBetween: 0, centeredSlides: !1, virtualTranslate: !0 };
                    D.extend(this.params, e), D.extend(this.originalParams, e)
                },
                setTranslate() { "cube" === this.params.effect && this.cubeEffect.setTranslate() },
                setTransition(e) { "cube" === this.params.effect && this.cubeEffect.setTransition(e) }
            }
        }, {
            name: "effect-flip",
            params: { flipEffect: { slideShadows: !0, limitRotation: !0 } },
            create() { D.extend(this, { flipEffect: { setTranslate: xe.setTranslate.bind(this), setTransition: xe.setTransition.bind(this) } }) },
            on: {
                beforeInit() {
                    if ("flip" !== this.params.effect) return;
                    this.classNames.push(`${this.params.containerModifierClass}flip`), this.classNames.push(`${this.params.containerModifierClass}3d`);
                    const e = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, spaceBetween: 0, virtualTranslate: !0 };
                    D.extend(this.params, e), D.extend(this.originalParams, e)
                },
                setTranslate() { "flip" === this.params.effect && this.flipEffect.setTranslate() },
                setTransition(e) { "flip" === this.params.effect && this.flipEffect.setTransition(e) }
            }
        }, { name: "effect-coverflow", params: { coverflowEffect: { rotate: 50, stretch: 0, depth: 100, modifier: 1, slideShadows: !0 } }, create() { D.extend(this, { coverflowEffect: { setTranslate: Te.setTranslate.bind(this), setTransition: Te.setTransition.bind(this) } }) }, on: { beforeInit() { "coverflow" === this.params.effect && (this.classNames.push(`${this.params.containerModifierClass}coverflow`), this.classNames.push(`${this.params.containerModifierClass}3d`), this.params.watchSlidesProgress = !0, this.originalParams.watchSlidesProgress = !0) }, setTranslate() { "coverflow" === this.params.effect && this.coverflowEffect.setTranslate() }, setTransition(e) { "coverflow" === this.params.effect && this.coverflowEffect.setTransition(e) } } }, {
            name: "thumbs",
            params: { thumbs: { swiper: null, slideThumbActiveClass: "swiper-slide-thumb-active", thumbsContainerClass: "swiper-container-thumbs" } },
            create() { D.extend(this, { thumbs: { swiper: null, init: Se.init.bind(this), update: Se.update.bind(this), onThumbClick: Se.onThumbClick.bind(this) } }) },
            on: {
                beforeInit() {
                    const { thumbs: e } = this.params;
                    e && e.swiper && (this.thumbs.init(), this.thumbs.update(!0))
                },
                slideChange() { this.thumbs.swiper && this.thumbs.update() },
                update() { this.thumbs.swiper && this.thumbs.update() },
                resize() { this.thumbs.swiper && this.thumbs.update() },
                observerUpdate() { this.thumbs.swiper && this.thumbs.update() },
                setTransition(e) {
                    const t = this.thumbs.swiper;
                    t && t.setTransition(e)
                },
                beforeDestroy() {
                    const e = this.thumbs.swiper;
                    e && this.thumbs.swiperCreated && e && e.destroy()
                }
            }
        }];
        void 0 === K.use && (K.use = K.Class.use, K.installModule = K.Class.installModule), K.use(Ce);
        var Ee = K,
            Ae = {
                data: function() { return { BigImgSrc: "", PictrueShow: !1, item: "", FiveList: [], ProcessingResultsUrl: "", ProcessingData: "", ExaminationPersonUrl: "", CheckData: "", indeImg: "", UnqualifiedItemsDataList: [], UNQualifiedItemsImg: [], UnqualifiedItemsData: "", InspectOptionListData: [], QualifiedItemsImg: [], QualifiedItemsData: "", allList: [], indId: "", modelShow: !1, EnforcementList: [], indexActive: 0, EnforcementComentShow: !1, EarlyWarning: !0, bigImgPosi: [], BannerComponeyData: "德庆门国际会议中心", tableData: [{ index: 0 }, { index: 2 }, { index: 3 }, { index: 4 }], BannerDataList: [{ index: 0 }], BannerShow: !1, StoreName: "", ExporseQuestion: "", ExporseTime: "", LawPerson: "", ContactPerson: "", PicList: [], ElectronicInspectId: "b605584e-a89c-4a55-8338-dfbe2a017b7e", AppId: "", Index: 0, imgResult: [], ChooseButtonList: [{ name: "智能预警" }, { name: "执法详情" }] } },
                created: function() {},
                mounted: function() {
                    var e = this;
                    this.GetBannerData(), setInterval(function() { e.GetBannerData("11"), e.BannerShow = !0, e.$emit("GoMapBanner", e.BannerShow) }, 114e3), setTimeout(function() { e.BannerShow = !0, e.$emit("GoMapBanner", e.BannerShow) }, 500), setTimeout(function() { e.BannerShow = !1, e.$emit("GoMapBanner", e.BannerShow) }, 4e3)
                },
                props: ["GoBanner", "imgID"],
                watch: { imgID: function(e) { this.indId = e, this.getPlatformPicDetail(e), this.showBigImg(this.BannerDataList[0]), this.GetPlatFormRects(e) }, GoBanner: function(e) { this.BannerShow = e } },
                methods: {
                    deletemodel: function() { this.BannerShow = !1, this.$emit("GoMapBanner", this.BannerShow) },
                    CloseBigImg: function() { this.PictrueShow = !1 },
                    showBigImg: function(e) {
                        var t = this;
                        this.PictrueShow = !0, this.indeImg = e, m({ RecognizeId: this.indId }).then(function(e) { t.bigImgPosi = e.SCater.Data })
                    },
                    goPictrue: function() { this.PictrueShow = !1 },
                    imgBig: function(e) { this.BigImgSrc = e, this.PictrueShow = !0 },
                    ChooseClick: function(e) {
                        var t = this;
                        this.indexActive = e, 0 == e ? (this.EarlyWarning = !0, this.EnforcementComentShow = !1, this.$nextTick(function() { t.initSwiper() })) : (this.EarlyWarning = !1, this.EnforcementComentShow = !0, this.$nextTick(function() { t.initSwiper() }))
                    },
                    initSwiper: function() { new Ee(".swiper-container3", { loop: !0, navigation: { nextEl: ".swiper-button-next", prevEl: ".swiper-button-prev" }, pagination: { el: ".swiper-pagination", clickable: !0, type: "fraction" }, on: { slideChangeTransitionEnd: function() { self.Index = this.realIndex } } }) },
                    CloseBanner: function() { this.BannerShow = !1, this.$emit("GoMapBanner", this.BannerShow) },
                    GetBannerData: function(e) {
                        var t = this;
                        h({ code: "all", AppId: this.$getParams("appid"), EBCOrganizationId: "", UserId: this.$getParams("userid") }).then(function(i) { t.allList = i.SCater.Data.PlatformPics_A, t.initEvent = e ? i.SCater.Data.PlatformPics_A[0] : i.SCater.Data.PlatformPics_A[3], t.getPlatformPicDetail(t.initEvent.RecognizeId), t.GetPlatFormRects(t.initEvent.RecognizeId), t.indId = t.initEvent.RecognizeId, t.showBigImg(), setTimeout(function() { t.BannerShow = !1, t.$emit("GoMapBanner", t.BannerShow) }, 4e3) })
                    },
                    getPlatformPicDetail: function(e) {
                        var t, i = this;
                        (t = { AppId: this.$getParams("appid"), RecognizeId: e, UserId: this.$getParams("userid") }, p("/CockpitMobile/PlatformPicDetail", t)).then(function(e) { i.BannerDataList = e.SCater.Data.PlatformPicDetail_A })
                    },
                    GetPlatFormRects: function(e) {
                        var t = this;
                        m({ RecognizeId: e }).then(function(e) { t.imgResult = e.SCater.Data })
                    },
                    imgError: function(e) { e.img = i("2Rkd") },
                    ChangeName: function() {}
                }
            },
            Me = {
                render: function() {
                    var e = this,
                        t = e.$createElement,
                        n = e._self._c || t;
                    return n("transition", { attrs: { name: "bounce" } }, [n("transition", { attrs: { name: "bounce" } }, [e.BannerShow ? n("div", { staticClass: "details", on: { mouseover: function(t) { e.modelShow = !0 }, mouseout: function(t) { e.modelShow = !1 } } }, [n("img", { staticStyle: { width: "100%", height: "100%", position: "relative" }, attrs: { src: e.BannerDataList[0].ImgUrl } }), e._v(" "), e._l(e.bigImgPosi.PlatFormRects_B, function(t) { return n("div", { staticClass: "bigImg", style: { top: e.bigImgPosi.PlatFormRects_A[0].InitHeight >= 663 ? t.Top / (e.bigImgPosi.PlatFormRects_A[0].InitHeight / 663).toFixed(2) - 50 + "px" : (663 / e.bigImgPosi.PlatFormRects_A[0].InitHeight).toFixed(2) * (t.Top - 30) + 20 + "px", left: e.bigImgPosi.PlatFormRects_A[0].InitWidth >= 1e3 ? t.Left / (e.bigImgPosi.PlatFormRects_A[0].InitWidth / 1e3).toFixed(2) + "px" : (1e3 / e.bigImgPosi.PlatFormRects_A[0].InitWidth).toFixed(2) * (t.Left - 15) + 20 + "px" } }, [n("p", [e._v(e._s(t.Result))]), e._v(" "), n("div", { style: { height: e.bigImgPosi.PlatFormRects_A[0].InitHeight >= 663 ? t.Height / (e.bigImgPosi.PlatFormRects_A[0].InitHeight / 663).toFixed(2) + "px" : (663 / e.bigImgPosi.PlatFormRects_A[0].InitHeight).toFixed(2) * t.Height + "px", width: e.bigImgPosi.PlatFormRects_A[0].InitWidth >= 1e3 ? t.Width / (e.bigImgPosi.PlatFormRects_A[0].InitWidth / 1e3).toFixed(2) + "px" : (1e3 / e.bigImgPosi.PlatFormRects_A[0].InitWidth).toFixed(2) * t.Width + "px" } })]) }), e._v(" "), n("div", { directives: [{ name: "show", rawName: "v-show", value: e.modelShow, expression: "modelShow" }], staticClass: "deleteModel" }, [n("img", { staticStyle: { float: "right", width: "25px", height: "25px", margin: "6px", cursor: "pointer" }, attrs: { src: i("VSCD") }, on: { click: e.deletemodel } })])], 2) : e._e()])], 1)
                },
                staticRenderFns: []
            };
        var Pe = {
                name: "home",
                data: function() { return { BannerListShow: !1, SwitchData: !1, swiperEvent: "", PlatformPicsList: [], imgID: "", showBottom: !1 } },
                components: { TitleView: y, LeftView: x, RightView: E, IntellWarn: i("VU/8")(Ae, Me, !1, function(e) { i("rzkp"), i("s1N0") }, "data-v-472093f8", null).exports },
                methods: {
                    GoMapBannerData: function(e) { 1 == e ? (this.BannerListShow = !0, this.SwitchData = !0) : (this.BannerListShow = !1, this.SwitchData = !1) },
                    update: function(e) { this.BannerListShow = e, this.SwitchData = e },
                    SwitchChange: function() { 0 == this.SwitchData ? this.BannerListShow = !1 : this.BannerListShow = !0 },
                    showclick: function(e) { this.imgID = e, this.BannerListShow = !0, this.SwitchData = !0 },
                    GetPlatformPics: function() {
                        var e = this;
                        h({ code: "all", AppId: this.$getParams("appid"), EBCOrganizationId: "", UserId: this.$getParams("userid") }).then(function(t) { e.PlatformPicsList = t.SCater.Data.PlatformPics_A, e.showBottom = !0, setTimeout(function() { e.initSwiper() }, 500) })
                    },
                    initSwiper: function() {
                        var e = this;
                        new Swiper("#swip .swiper-container", {
                            watchSlidesProgress: !0,
                            slidesPerView: "auto",
                            slideToClickedSlide: !0,
                            centeredSlides: !0,
                            initialSlide: 3,
                            autoplay: 6e3,
                            autoplayDisableOnInteraction: !1,
                            prevButton: ".swiper-button-prev",
                            nextButton: ".swiper-button-next",
                            onProgress: function(e, t) {
                                for (var i = 0; i < e.slides.length; i++) {
                                    var n = e.slides.eq(i),
                                        a = e.slides[i].progress,
                                        r = 1;
                                    Math.abs(a) > 1 && (r = .6 * (Math.abs(a) - 1) + 1);
                                    var s = a * r * 30 + "px",
                                        o = 1 - Math.abs(a) / 8,
                                        l = 999 - Math.abs(Math.round(10 * a));
                                    n.transform("translateX(" + s + ") scale(" + o + ")"), n.css("zIndex", l), n.css("opacity", 1), Math.abs(a) > 3.5 && n.css("opacity", 0)
                                }
                            },
                            onSetTransition: function(e, t) { for (var i = 0; i < e.slides.length; i++) { e.slides.eq(i).transition(t) } },
                            onSlideChangeEnd: function(t) { console.log(t.activeIndex), t.activeIndex > 50 && (t.activeIndex = t.activeIndex % 50), e.imgID = e.PlatformPicsList[t.activeIndex].RecognizeId }
                        })
                    }
                },
                mounted: function() { this.GetPlatformPics() }
            },
            ke = {
                render: function() {
                    var e = this,
                        t = e.$createElement,
                        i = e._self._c || t;
                    return i("div", { attrs: { id: "home" } }, [i("title-view"), e._v(" "), i("left-view"), e._v(" "), i("div", [i("div", { staticClass: "ShowButton" }, [i("el-switch", { attrs: { "active-color": "#13ce66", "inactive-color": "#ff4949" }, on: { change: e.SwitchChange }, model: { value: e.SwitchData, callback: function(t) { e.SwitchData = t }, expression: "SwitchData" } }), e._v(" "), i("span", { staticStyle: { color: "#fff" } }, [e._v("\n        智能预警\n      ")])], 1), e._v(" "), i("right-view")], 1), e._v(" "), i("intell-warn", { attrs: { GoBanner: e.BannerListShow, imgID: e.imgID }, on: { GoMapBanner: e.update } }), e._v(" "), e._m(0), e._v(" "), e.showBottom ? i("div", { attrs: { id: "viewBottom" } }, [i("div", { attrs: { id: "swip" } }, [i("div", { staticClass: "swiper-container" }, [i("div", { staticClass: "swiper-wrapper" }, e._l(e.PlatformPicsList, function(t, n) { return i("div", { staticClass: "swiper-slide", on: { click: function(i) { return e.showclick(t.RecognizeId) } } }, [i("img", { attrs: { src: t.ImgUrl } })]) }), 0)])]), e._v(" "), e._m(1)]) : e._e()], 1)
                },
                staticRenderFns: [function() {
                    var e = this.$createElement,
                        t = this._self._c || e;
                    return t("div", { attrs: { id: "randar" } }, [t("div", { staticClass: "randar" }, [t("span", [t("span", [t("span")])]), this._v(" "), t("p", { staticClass: "artificial" }, [this._v("\n        人工识别\n        "), t("span")]), this._v(" "), t("p", { staticClass: "smart" }, [t("span", [this._v("智能识别")])]), this._v(" "), t("div", { attrs: { id: "myCanvas" } }, [t("div")])])])
                }, function() {
                    var e = this.$createElement,
                        t = this._self._c || e;
                    return t("div", { staticClass: "code" }, [t("img", { attrs: { src: i("hk/z") } })])
                }]
            };
        var ze = i("VU/8")(Pe, ke, !1, function(e) { i("5CjL") }, "data-v-f0f198b8", null);
        t.default = ze.exports
    },
    xDfs: function(e, t) {},
    "xH/j": function(e, t, i) {
        var n = i("hJx8");
        e.exports = function(e, t, i) { for (var a in t) i && e[a] ? e[a] = t[a] : n(e, a, t[a]); return e }
    },
    xLtR: function(e, t, i) {
        "use strict";
        var n = i("cGG2"),
            a = i("TNV1"),
            r = i("pBtG"),
            s = i("KCLY"),
            o = i("dIwP"),
            l = i("qRfI");

        function d(e) { e.cancelToken && e.cancelToken.throwIfRequested() }
        e.exports = function(e) { return d(e), e.baseURL && !o(e.url) && (e.url = l(e.baseURL, e.url)), e.headers = e.headers || {}, e.data = a(e.data, e.headers, e.transformRequest), e.headers = n.merge(e.headers.common || {}, e.headers[e.method] || {}, e.headers || {}), n.forEach(["delete", "get", "head", "post", "put", "patch", "common"], function(t) { delete e.headers[t] }), (e.adapter || s.adapter)(e).then(function(t) { return d(e), t.data = a(t.data, t.headers, e.transformResponse), t }, function(t) { return r(t) || (d(e), t && t.response && (t.response.data = a(t.response.data, t.response.headers, e.transformResponse))), Promise.reject(t) }) }
    },
    xNxe: function(e, t) { e.exports = "" }
});